[英]Deleting/Removing element from a list when comparing to another list Python
[英]Python: Deleting a list element based on elements from another list
我这里有两个清单。 我正在重排列表i
,检查它是第一个元素,然后从列表j
删除相应的元素,例如,如果在重排之后i[0] == 3
,那么我想从列表' j
删除元素3。
i = ['a','b','c','d','e','f','g','h']
random.shuffle(i)
j = [1,2,3,4,5,6,7,8]
if i[0] == 'a':
del j[0]
elif i[0] == 'b':
del j[1]
elif i[0] == 'c':
del j[2]
elif i[0] == 'd':
del j[3]
elif i[0] == 'e':
del j[4]
elif i[0] == 'f':
del j[5]
elif i[0] == 'g':
del j[6]
elif i[0] == 'h':
del j[7]
有没有一种方法可以执行此任务而不列出类似if的语句? 就目前而言,如果i[0] == 6
,那么原则上需要检查几个if语句,这是在浪费处理能力。
谢谢,史蒂夫
你可以做
j.remove(i[0])
从列表j中删除值为i [0]的元素。
[编辑]更新:
import random
i = ['a','b','c','d','e','f','g','h']
k=i[:]
random.shuffle(i)
print i
print k
print j
j = [1,2,3,4,5,6,7,8]
print i[0]
print k.index(i[0])
del j[k.index(i[0])]
print j
i = [a,b,c,d,e,f,g,h]
base = [a,b,c,d,e,f,g,h]
random.shuffle(i)
j = [1,2,3,4,5,6,7,8]
del j[base.index(i[0])]
您可以使用索引方法执行删除j
项目:
i = [a,b,c,d,e,f,g,h]
random.shuffle(i)
j = [1,2,3,4,5,6,7,8]
del j[j.index(i[0])]
random.shuffle(i)
del j[j.index(i[0])]
如果经过洗牌,i [0] == 3,那么我想从列表'j'中删除元素3。
如果这只是您要完成的工作,那么就去买j.remove(i[0])
或者,如果您坚持使用del
, del j[i[0]]
,那么我不会(仅当您想让代码阅读者清楚该变量将不再在程序中使用时,才使用del在您的代码中更进一步。在这里,它可以工作,但list.remove
更好地向读者表达您的意图。)
读了你可以用列表做了Python文档中还有什么在列表, 在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.