iip*_*izy 1 python dictionary python-3.x python-3.7
我正在尝试“压平”一本看起来像这样的字典:
d = {
"USA": ["US", "United States"],
"SGP": ["JP", "Japan", "Singapore"]
}
Run Code Online (Sandbox Code Playgroud)
我想要的格式是这样的:
new_d = {
"United States": "USA",
"US": "USA",
"JP": "SGP",
"Japan": "SGP",
"Singapore": "SGP"
}
Run Code Online (Sandbox Code Playgroud)
使用带有嵌套迭代的字典理解:
>>> d = {
... "USA": ["US", "United States"],
... "SGP": ["JP", "Japan", "Singapore"]
... }
>>> {i: k for k, v in d.items() for i in v}
{'US': 'USA', 'United States': 'USA', 'JP': 'SGP', 'Japan': 'SGP', 'Singapore': 'SGP'}
Run Code Online (Sandbox Code Playgroud)
k, v in d.items()-> k = "USA", ...,v = ["US", "United States"], ...i in v->i = "US", ...因此:
{i: k ...}->{"US": "USA", ...}