表与字典for循环差异的原因

2024-06-25 23:20:20 发布

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

我做了一个“for”循环列表

chosen_subjects = ['physics', 'maths', 'computer science', 'medicine']

for subjects in chosen_subjects:
    print(subjects.title())

我在字典里做了一个“for”循环

chosen_subjects = {'sarah': 'physics', 'john': 'maths', 'denise': 'computer science', 'william': 'medicine'}

for subjects in chosen_subjects.values():
    print(subjects.title())

这些代码的结果完全相同

Physics
Maths
Computer Science
Medicine

基本上,如果你们看一下列表和字典的这两个for循环的for行,for循环的列表不需要冒号前面的括号,而for循环的字典需要冒号前面的括号

编程上的原因是什么?为什么python设计者在开始创建“for”循环时,在list和dictionary之间做出如此显著的区别


Tags: in列表for字典titlecomputer括号science
1条回答
网友
1楼 · 发布于 2024-06-25 23:20:20

对于阵列来说,目标非常直接:

[a, b, c, d, e]

您将希望for循环为您提供数组中的每个值

对于字典:

{a:"cat", b:"dog", c:"moose"}

想要的行为并不那么明显。开发人员想迭代每个键吗[a, b, c, d]还是他们想要这些值["cat", "dog", "moose"]

这是因为字典没有明确的迭代方法。所以你必须指定你想要迭代的方式。这就是.values()工作的原因。您正在从字典中获取一个值数组

相关问题 更多 >