python list的remove方法有一些问题。 我已附上以下代码。 该代码不会删除长度小于3的所有元素
result=[['10'], ['5'], ['6'], ['12'], ['9'], ['10'], ['5', '9', '10'],
['5', '10'], ['13'], ['9', '10'], ['1']]
for i in result:
if len(i)<=2:
result.remove(i)
print (result)
结果打印为[['5'],['12'],['10'],['5','9','10'],['12']] 任何帮助都非常受欢迎和赞赏
答案 0 :(得分:2)
问题是,你在迭代它时操纵列表。您最好创建结果列表的过滤副本:
result=[['10'], ['5'], ['6'], ['12'], ['9'], ['10'], ['5', '9', '10'], ['5', '10'], ['13'], ['9', '10'], ['1']]
filtered_result = []
for i in result:
if len(i)>2:
filtered_result.append(i)
print(filtered_result)
或者例如使用filter
:
result = filter(lambda x: len(x)>2, result)
你也可以使用列表理解:
result = [x for x in result if len(x)>2]