列表和字典之间“for”循环差异的原因

时间:2018-02-23 22:34:21

标签: python list loops dictionary

我已经制作了一个“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”循环的列表DOESN“T NEED冒号前的括号,而”for“循环的字典在结肠前需要括号。

有什么程序上的原因,为什么python设计师在制作“for”循环时会在列表和字典之间产生如此明显的区别?

1 个答案:

答案 0 :(得分:2)

对于数组,目标非常直接:

[a, b, c, d, e]

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

字典:

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

期望的行为并不那么明显。开发人员是否想要遍历每个密钥? [a, b, c, d]或者他们是否想要价值观? ["cat", "dog", "moose"]

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