mer*_*011 4 python dictionary dictionary-comprehension
考虑以下字典理解:
foo = ['super capital=BLUE', 'super foo=RED']
patternMap = {x.split("=")[0]:x.split("=")[1] for x in foo}
Run Code Online (Sandbox Code Playgroud)
它相当简洁,但我不喜欢我需要打x.split('=')两次电话的事实.我尝试了以下但它只会导致语法错误.
patternMap = {y[0] : y[1] for y in x.split('=') for x in foo}
Run Code Online (Sandbox Code Playgroud)
有没有"正确"的方法来实现前两行的结果,而不必调用x.split()两次或更冗长?
直接dict与元组一样:
patternMap = dict(x.split('=') for x in foo)
Run Code Online (Sandbox Code Playgroud)
foo = ['super capital=BLUE', 'super foo=RED']
patternMap = {x.split("=")[0]: x.split("=")[1] for x in foo}
print(patternMap)
patternMap = dict(x.split('=') for x in foo)
print(patternMap)
# or if you really need a longer way
patternMap = {y[0]: y[1] for y in (x.split('=') for x in foo)}
print(patternMap)
Run Code Online (Sandbox Code Playgroud)
{'super capital': 'BLUE', 'super foo': 'RED'}
{'super capital': 'BLUE', 'super foo': 'RED'}
{'super capital': 'BLUE', 'super foo': 'RED'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |