对于一个项目,我想从文档路径中获取指向afile的单词,并在列表中返回它们。我可以通过使用列表解析、正则表达式和for循环来实现这一点:
for path, subdir, files in os.walk(directory):
for file in files:
themen = [x for x in re.findall(r'[^\W\d_]+',path)]
themen_final = []
for i in range(4,len(themen)):
themen_final.append(themen[i])
print(themen_final)
字符串
这很好,但我确信,可以将for循环for i in range...
也放在上面的列表解析中。我该怎么做?
1条答案
按热度按时间k0pti3hp1#
只需观察一下,对于列表解析,
for
循环的顺序与您通常编写它们的顺序相同。所以呢字符串
将成为
型
有了这些知识,重写任何循环到一个理解就变得非常容易了。你把末端放在前面,然后把
for
放在后面。因为你用themen_final = []
做了一个小列表,所以我们从下面开始:型
然后再做一次同样的动作,得到:
型
尽管我甚至希望您对
re.findall(r'[^\W\d_]+', path + file)
感兴趣,或者您可以不使用for file in files
。现在,您将始终为每个文件获得相同的结果。:)