我有这本字典,

states = {
    'CT': 'Connecticut',
    'CA': 'California',
    'NY': 'New York',
    'NJ': 'New Jersey'
    }


和代码在这里..

state2 = {state: abbrev for abbrev, state in states.items()}


我正在尝试了解此abbrev for abbrev的作用和方式。我也不清楚state:到底是什么。我得到第二部分(states.items()中的状态)。这样的输出给出

{'Connecticut': 'CT', 'California': 'CA', 'New York': 'NY', 'New Jersey': 'NJ'}


但是我不确定这是如何工作的。

最佳答案

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

state2 = {state: abbrev for abbrev, state in states.items()}


如果看一下state: abbrev,您可以立即知道这是一个常规的对象分配语法。您正在将abbrev的值分配给状态键。但是状态是什么,简称?

您只需要查看下一条语句for abbrev, state in states.items()

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

因此,字典理解似乎在为我们创建一个对象,方法是遍历对象并在遍历对象时分配键和值。

关于python - Python字典语法,具有for条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59671461/

10-12 18:30