对于循环问题

时间:2014-04-06 17:06:30

标签: python

我习惯以这种格式看到For循环:

for number in l: sum = sum + number

我正在浏览一些论坛并遇到了这段代码:

count_chars = ".arPZ"
string = "Phillip S. is doing a really good job."
counts = tuple(string.count(d) for(d)  in count_chars)

print counts

我不确定这是否真的是For循环,所以我决定以我理解的方式重写它:

tuple(
for(d) in count_chars:
    string.count(d))

毋庸置疑,它失败了哈哈。那么有人可以解释发生了什么,并解释我的逻辑愚蠢吗?谢谢!

1 个答案:

答案 0 :(得分:4)

它不是for循环,而是generator expression。它基本上做的是返回一个迭代器,其中每个元素是count_charsd中每个字符出现的时间量tuple。然后,它将所有这些元素添加到counts = [] for d in count_chars: counts.append(string.count(d)) counts = tuple(counts)

(大致)相当于:

{{1}}