Python 字典语法,有一个 for 条件

abk*_*f12 2 python dictionary dictionary-comprehension iterable-unpacking

我有这本字典,

states = {
    'CT': 'Connecticut',
    'CA': 'California',
    'NY': 'New York',
    'NJ': 'New Jersey'
    }
Run Code Online (Sandbox Code Playgroud)

和代码在这里..

state2 = {state: abbrev for abbrev, state in states.items()}
Run Code Online (Sandbox Code Playgroud)

我试图了解这是什么以及如何abbrev for abbrev工作。我也不清楚究竟state:是什么。我得到了第二部分(states.items() 中的状态)。这个的输出给出

{'Connecticut': 'CT', 'California': 'CA', 'New York': 'NY', 'New Jersey': 'NJ'}
Run Code Online (Sandbox Code Playgroud)

但我不确定这是如何工作的.. 在此先感谢您。

ale*_*067 5

这里发生的事情被称为字典理解,一旦你对它们足够了解,就很容易阅读。

state2 = {state: abbrev for abbrev, state in states.items()}
Run Code Online (Sandbox Code Playgroud)

如果您看一看,state: abbrev您可以立即看出这是一个常规的对象分配语法。您将 abbrev 的值分配给状态键。但是什么是状态和缩写?

你只需要看下一个语句, for abbrev, state in states.items()

这里有一个 for 循环,其中 abbrev 是键,state 是项,因为 states.items() 返回一个键和值对。

所以看起来字典理解正在为我们创建一个对象,通过循环遍历一个对象并在循环时分配键和值。