Python中“逐字逐句”和“ char逐字符”之间的区别

时间:2019-12-09 04:09:19

标签: python filtering

对于一个我已分解为txt的句子words,我试图将4个以上字符的单词过滤到一个列表中。

我同时尝试了char for char in words if len(char) >= 4word for word in words if len(word) >= 4,它们给出相同的输出。它们之间有什么区别?我应该使用哪一个?

2 个答案:

答案 0 :(得分:1)

它们给您相同的输出,因为您实际上是在要求python做同样的事情。尝试做:

foo for foo in words if len(foo) >= 4

在这种情况下,foo只是变量的名称-在列表理解中,它“成为” words列表中的每个单词。 if语句中也引用了该变量。

charword在这种情况下不是特殊的命令-它们只是以描述其含义的方式命名的变量。

这与在循环中声明的变量相同:

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