for循环通过字典python3

2024-05-29 02:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

with_comma= ', '.join(name['name'] for name in names[:-1])

那里有什么?它如何从相应的词典中提取名称

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

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


Tags: 代码namein名称fornameswith词典
1条回答
网友
1楼 · 发布于 2024-05-29 02:30:50

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

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

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

name for name in names[:-1]是一个生成器,它一次生成一个names[:-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])

结果with_comma的值为'Alice, Bob'

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

相关问题 更多 >

    热门问题