我已经制作了一个“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”循环时会在列表和字典之间产生如此明显的区别?
答案 0 :(得分:2)
对于数组,目标非常直接:
[a, b, c, d, e]
您希望for循环为您提供数组中的每个值。
字典:
{a:"cat", b:"dog", c:"moose"}
期望的行为并不那么明显。开发人员是否想要遍历每个密钥? [a, b, c, d]
或者他们是否想要价值观? ["cat", "dog", "moose"]
。
原因是因为字典没有明确的迭代方法。所以你必须指明你想要迭代的方式。这就是.values()
有效的原因。您将从字典中获取一组值。