需要解释有关python中的for循环代码

时间:2019-05-06 00:11:58

标签: python python-3.x for-loop

我在网上找到了一个python“ for循环”代码,其语法与其他代码不同。我想知道:

  1. 为什么“键”位于for循环前面?
  2. 为什么要内联if语句?

代码:

input = "codeforcode" 
freqDict = Counter(input)
freq1 = [ key for (key,count) in freqDict.items() if count==1]

此外,我想通过Web链接更深入地了解python中的“ for循环”。

1 个答案:

答案 0 :(得分:1)

它称为List Comprehension

  

列表推导由包含表达式的方括号组成   后跟for子句,然后是零个或多个forif子句。的   结果将是一个新列表,该列表是通过计算   其后的for和if子句的上下文。例如,   如果没有,此listcomp会合并两个列表的元素   等于:

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

您有for个循环

[ key for (key,count) in freqDict.items() if count==1]

等效于:

keys = []
for key, count in freqDict.items():
    if count == 1:
        keys.append(key)

您可能知道的常规for循环在Python中仍然有效,在那里没有任何更改。使用列表推导“ 提供了一种创建列表的更简洁的方法”,因为for循环和if条件都放在一行中,而且,无需创建用于存储结果列表的临时变量。