对于一个我已分解为txt
的句子words
,我试图将4个以上字符的单词过滤到一个列表中。
我同时尝试了char for char in words if len(char) >= 4
和word for word in words if len(word) >= 4
,它们给出相同的输出。它们之间有什么区别?我应该使用哪一个?
答案 0 :(得分:1)
它们给您相同的输出,因为您实际上是在要求python做同样的事情。尝试做:
foo for foo in words if len(foo) >= 4
在这种情况下,foo
只是变量的名称-在列表理解中,它“成为” words
列表中的每个单词。 if
语句中也引用了该变量。
char
和word
在这种情况下不是特殊的命令-它们只是以描述其含义的方式命名的变量。
这与在循环中声明的变量相同:
for word in words:
print(word)
或:
for foo in words:
print(foo)
做同样的事情-可以说第一个比较好,因为变量word
的名称有助于为阅读代码的人提供上下文。
答案 1 :(得分:1)
在这种情况下,“ char”和“ word”只是变量名。在这两个示例中,所有代码都在说您要迭代一个名为“ words”的列表,并且要将当前项引用为“ word” /“ char”。两种方法都可以接受,但是您应该阅读列表理解以了解更多信息。
https://www.pythonforbeginners.com/basics/list-comprehensions-in-python