Python 循环问题

Python 循环问题,python,Python,我习惯于以这种格式查看For循环: 对于l中的数字: 总和=总和+数字 我在浏览一些论坛时发现了以下代码: 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 co

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

对于l中的数字:
总和=总和+数字

我在浏览一些论坛时发现了以下代码:

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))

不用说,它失败了lol。那么有人能解释一下发生了什么,解释一下我的逻辑的愚蠢吗?谢谢

对于这样的循环来说,它不是一个
,而是一个。它基本上是返回一个迭代器,其中每个元素是
count\u chars
中每个字符在
d
中出现的时间量。然后将所有这些元素添加到
元组中

它(大致)相当于:

counts = []
for d in count_chars:
    counts.append(string.count(d))
counts = tuple(counts)

它本身并不是一个
循环,而是一个循环。它基本上是返回一个迭代器,其中每个元素是
count\u chars
中每个字符在
d
中出现的时间量。然后将所有这些元素添加到
元组中

它(大致)相当于:

counts = []
for d in count_chars:
    counts.append(string.count(d))
counts = tuple(counts)

这称为生成器表达式。我相信有人会发布一个比我写的更专业的答案。谢谢你帮我找到了正确的方向。我不知道生成器表达式是什么@user3386440没有人发布任何东西(正确),所以我写了一些东西,请参见下文。这可能的副本称为生成器表达式。我相信有人会发布一个比我写的更专业的答案。谢谢你帮我找到了正确的方向。我不知道生成器表达式是什么@user3386440没有人发布任何东西(正确),所以我写了一些东西,见下文。可能重复@user3386440声明一个空列表
计数
。对于
count\u chars
中的每个元素,计算它在
string
中的次数,并将该数字添加到列表
counts
。将计数转换为元组。再次感谢。我将自己查找
append
,但我想我已经找到了其余部分。假设我不希望它出现在列表中,即:
(2,2,1,1,0)
。相反,我希望它只是简单地打印出来。我将向你展示我在OP中的意思。@user3386440声明一个空列表
计数
。对于
count\u chars
中的每个元素,计算它在
string
中的次数,并将该数字添加到列表
counts
。将计数转换为元组。再次感谢。我将自己查找
append
,但我想我已经找到了其余部分。假设我不希望它出现在列表中,即:
(2,2,1,1,0)
。相反,我希望它只是简单地打印出来。我会告诉你我的意思是在行动中。