Python 字典语法,有一个 for 条件
Python dictionary syntax, having a for condition
我有这本词典,
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() returns 我们是键值对。
所以看起来字典理解正在为我们创建一个对象,通过循环遍历一个对象并在循环时分配键和值。
字典推导与列表推导类似。 states.items()
是一个生成器,它将 return 原始字典中每个项目的键和值。因此,如果您要声明一个空字典,遍历项目,然后翻转键和值,您将拥有一个新字典,它是原始字典的翻转版本。
state2 = {}
for abbrev, state in states.items():
state2[state] = abbrev
从循环结构转换
翻转行的顺序
state2 = {}
state2[state] = abbrev
for abbrev, state in states.items():
加长括号包罗万象
state2 = {
state2[state] = abbrev
for abbrev, state in states.items():
}
修复分配问题,因为 state2
未分配
state2 = {
state: abbrev
for abbrev, state in states.items():
}
放弃原来的:
state2 = {
state: abbrev
for abbrev, state in states.items()
}
整理行
state2 = {state: abbrev for abbrev, state in states.items()}
使用理解语法通常更快,也是首选。
我有这本词典,
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() returns 我们是键值对。
所以看起来字典理解正在为我们创建一个对象,通过循环遍历一个对象并在循环时分配键和值。
字典推导与列表推导类似。 states.items()
是一个生成器,它将 return 原始字典中每个项目的键和值。因此,如果您要声明一个空字典,遍历项目,然后翻转键和值,您将拥有一个新字典,它是原始字典的翻转版本。
state2 = {}
for abbrev, state in states.items():
state2[state] = abbrev
从循环结构转换
翻转行的顺序
state2 = {}
state2[state] = abbrev
for abbrev, state in states.items():
加长括号包罗万象
state2 = {
state2[state] = abbrev
for abbrev, state in states.items():
}
修复分配问题,因为 state2
未分配
state2 = {
state: abbrev
for abbrev, state in states.items():
}
放弃原来的:
state2 = {
state: abbrev
for abbrev, state in states.items()
}
整理行
state2 = {state: abbrev for abbrev, state in states.items()}
使用理解语法通常更快,也是首选。