如何将相同的元素添加到列表中?
说
A= [2,3,4,4]
B= [2,4,4,5,7,6,7]
for i in B:
if i ==4:
B.remove(4)
A.append(4)
print B
print A
当我这样做时,它会删除列表B中的所有4个,但A只添加了一个4.我怎样才能使B中的所有四个都进入A?
答案 0 :(得分:2)
不建议在迭代时修改列表。
>>> A = [2,3,4,4]
>>> B = [2,4,4,5,7,6,7]
>>>
>>> A.extend([4] * B.count(4))
>>> B = [x for x in B if x != 4]
>>> A
[2, 3, 4, 4, 4, 4]
>>> B
[2, 5, 7, 6, 7]
答案 1 :(得分:1)
如果我运行你的脚本,我会得到以下输出
[2, 4, 5, 7, 6, 7]
[2, 3, 4, 4, 4]
B中只删除了一个4,因为您在列表上运行时删除了一个元素。 也许你应该在循环B之后从B中删除4。
A = [2,3,4,4]
B = [2,4,4,5,7,6,7]
for i in B:
if i == 4:
A.append(4)
B = filter(lambda a: a != 4, B)
print B
print A
答案 2 :(得分:0)
以下适用于我:
A = [2, 3, 4, 4]
b = [2,4,4,5,7,6,7]
B=b[::] # Create a copy so we don't edit the 'B' list we want to iterate over.
for i in B:
if i==4:
A.append(i)
b.remove(i)
B = b[::]
print "B =",B
print "A =",A
这给出了:
B = [2, 5, 7, 6, 7]
A = [2, 3, 4, 4, 4, 4]
编辑:对不起,我第一次发布时,我的'A'列表不正确!