腿短也要抖 发表于 2020-4-16 14:18:10

关于list的insert空列表插入问题

列表为空时,位置参数无效。
list1 = ['A','B','C']
list2 = []
for i in range (3):
    order = int(input('你要把'+list1+'放在第几位?(请输入数字1,2,3):'))
    list2.insert(order - 1, list1)
print(list2 )
这样运行
你要把A放在第几位?(请输入数字1,2,3):3
你要把B放在第几位?(请输入数字1,2,3):2
你要把C放在第几位?(请输入数字1,2,3):1
结果是
['C', 'A', 'B']
这是为什么呀????????????????

wp231957 发表于 2020-4-16 14:33:31

第一步,把a放在第三位解释器也懵逼好吧,从结果来看 ,没有报错,随便放个位置
后面的两个就没啥说的了,所以 最后出现 cab不是很正常吗

qiuyouzhi 发表于 2020-4-16 14:33:40

可以打印一下:
list1 = ['A','B','C']
list2 = []
for i in range (3):
    order = int(input('你要把'+list1+'放在第几位?(请输入数字1,2,3):'))
    list2.insert(order - 1, list1)
    print(list2)
print(list2)
可以发现,当你插入一个东西后,
列表的顺序就变了(输入3,列表为['A'],输入2,列表为['A','B'],因为2大于1,不是第一个
然后输入1,也就是插入开头,就是['C','A','B'])

腿短也要抖 发表于 2020-4-16 14:43:15

谢谢谢谢,刚才蒙圈了{:5_109:}
页: [1]
查看完整版本: 关于list的insert空列表插入问题