for通过字典循环-python3

for通过字典循环-python3,python,loops,dictionary,Python,Loops,Dictionary,我只是想理解下面的代码: names = [{'name': alice}, {'name':bob}, {'name': david}] with_comma= ', '.join(name['name'] for name in names[:-1]) 那里的name['name']是什么?它如何从相应的词典中提取名称 此外,我从教科书中学到的是,我们应该在名称[:-1]中的名称的之后编写for循环每次迭代后会发生什么,它在哪里 我希望我写得很清楚。感谢您的帮助。您需要将代码分解为更小的

我只是想理解下面的代码:

names = [{'name': alice}, {'name':bob}, {'name': david}]

with_comma= ', '.join(name['name'] for name in names[:-1])
那里的
name['name']
是什么?它如何从相应的词典中提取名称

此外,我从教科书中学到的是,我们应该在名称[:-1]中的名称的
之后编写for循环每次迭代后会发生什么,它在哪里


我希望我写得很清楚。感谢您的帮助。

您需要将代码分解为更小的部分,并理解更小的部分才能理解整个代码

names
是一个包含三个字典的列表,每个字典只包含一个带有值的键
'name'
。这些值显然是在我们没有给出的代码的其他部分中定义的,因为这些值似乎已分配给变量
alice
bob
david

names[:-1]
表示“名称的所有元素,除了最后一个”,因此它实际上是
[{'name':alice},{'name':bob}]

name-in-names[:-1]
是一个生成器,它一次生成
name[:-1]
的元素。因此,它首先产生
{'name':alice}
,然后产生
{'name':bob}
,然后完成,因为没有更多的东西可以产生

name['name']
尝试使用键
'name'
索引变量
name
。当
name
具有值
{'name':alice}
时,
name['name']
是定义词典时
alice
的值

string的
.join()
方法将iterable作为参数,并将iterable中的每个元素放在一个新字符串中,原始字符串的副本卡在每个元素之间

因此,这段代码:

alice = 'Alice'
bob = 'Bob'
david = 'Whatever'

names = [{'name': alice}, {'name': bob}, {'name': david}]

with_comma= ', '.join(name['name'] for name in names[:-1])
结果在
中使用“\u逗号”
的值
“Alice,Bob”


但是,如果这是Python培训中的代码,我建议您再上一门课或课程,因为它在教授Python方面做得不是很好,在没有解释基础知识的情况下,就引入了这些复杂的内容。

您需要阅读Python教程。这是字典最基本的东西之一。这不是for循环,而是生成器。我们知道你是初学者,这很好。我们都是这样开始的。但你必须至少学习一些基础知识,才能在这里发布有意义和有用的问题。那里有很多学习资源。这是一个百科全书式的平台,用于解决常见的编程问题和错误。好吧,这是一个非常好的、深思熟虑的回答。多谢各位。