我有这个单子。keys=['mesi'、'Neymar'、'Xavi'、'Iniesta']我想遍历列表以从列表中删除当前元素。对于上面的清单,我想要一些类似的东西
Messi is out
['Neymar', 'Xavi', 'Iniesta']
Neymar is out
['Messi', 'Xavi', 'Iniesta']
Xavi is out
['Messi', 'Neymar', 'Iniesta']
Iniesta is out
['Messi', 'Neymar', 'Xavi']
这是我目前掌握的密码。好像不管用
keys = ['Messi', 'Neymar', 'Xavi', 'Iniesta']
tmp_keys = keys
length = len(keys)
for player in keys:
if player in tmp_keys:
print player + " is out"
print tmp_keys
tmp_keys.remove(player)
tmp_keys = keys
任何帮助都将不胜感激。你知道吗
显然,您在删除列表之前先打印列表。您想在删除后打印它。您还应该复制列表,而不是使用=
http://docs.python.org/2/library/copy.html
Python中的赋值语句不复制对象,而是在目标和对象之间创建绑定。对于可变或包含可变项的集合,有时需要一个副本,以便一个可以更改一个副本而不更改另一个副本。你知道吗
由于list没有copy(),因此需要另一种方法来防止对tmp\u键的更改也影响键
举个例子
输出:a b c e
输出:
在删除项目之前,您的代码似乎正在打印。我想如果你把这些话换个说法会管用的。你知道吗
复制列表的更好方法可能是:
就像说
tmp_keys = keys
只是为tmp_keys
同一个列表做了另一个标记keys
示例:
你也可以这样做:
输出:
使用filter命令:
相关问题 更多 >
编程相关推荐