为什么这个Python列表中的某些元素被忽略?

2024-04-19 01:33:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,我正在努力理解这个简单程序的输出:

list = os.listdir(os.getcwd())
print(list)
print()
for element in list:
    print(element)
    if 'txt' not in element: list.remove(element)

这给了我这个输出:

['examples_list.txt', 'generate_patterns.py', 'lehoczky_example_3.txt', 'patterns', 'test.py', 'test2.py']

examples_list.txt
generate_patterns.py
patterns
test2.py

为什么某些元素(如“lehoczky\u example\u 3.txt”)会被“for”循环忽略?你知道吗


Tags: inpytxtforosexampleelementexamples
2条回答

尝试列表理解。这将保留您的files列表,并创建一个新的noTxtFiles列表,而不触及files。你知道吗

files = os.listdir(os.getcwd())
noTxtFiles = [ element for element in files if 'txt' not in element ]

不要用保留字list作为变量名。你知道吗

在列表中循环时,不能从列表中删除元素。尝试在列表的副本上循环,或者创建一个只包含要保留的元素的新副本。你知道吗

另见Python strange behavior in for loop or lists

相关问题 更多 >