为了账号安全,请及时绑定邮箱和手机立即绑定

反转运算符从随机点反转列表

反转运算符从随机点反转列表

HUWWW 2022-06-28 10:18:25
有没有办法从一些随机索引中反转列表数据。我不想颠倒整个列表,只是其中的一部分。就像,我们有输入列表 a=[4,3,6,2,1,5,7,8]和输出列表 a' = [4,3,5,1,2,6,7,8] 反转点可以在任何地方,并且首选随机选择。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

是否有可能,您可以生成 2 个随机数并使用它们来选择不同的索引a


import random


a = [4,3,6,2,1,5,7,8]


b = random.randint(0,len(a))

c = random.randint(0,len(a))

while c == b :

    c = random.randint(0,len(a))


tmp = a[b]

a[b] = a[c]

a[c] = tmp

print(a)

编辑: 白色索引之间的反转


import random


a = [4,3,6,2,1,5,7,8]



len_a = len(a)-1


b = random.randint(0,len_a)

c = random.randint(0,len_a)

while c == b :

    c = random.randint(0,len_a)


if(b < c):

    min = b

    max = c

else:

    min = c

    max = b


print(f"{min} {max}")


new_list = a[0:min]


if(min == 0):

    for number in a[max::-1]:

        new_list.append(number)

else:

    for number in a[max:min-1:-1]:

        new_list.append(number)




if(max != len(a)):

    for number in a[max+1:len_a+1]:

        new_list.append(number)


print(f"a = \t\t{a}")

print(f"new_list = \t{new_list}")

输出 :


4 6

a =             [4, 3, 6, 2, 1, 5, 7, 8]

new_list =      [4, 3, 6, 2, 7, 5, 1, 8]


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号