use*_*312 11 python string dictionary
我有一个字符串形式:
s = 'A - 13, B - 14, C - 29, M - 99'
Run Code Online (Sandbox Code Playgroud)
等等(长度不一样).从中创建字典的最简单方法是什么?
A: 13, B: 14, C: 29 ...
Run Code Online (Sandbox Code Playgroud)
我知道我可以拆分,但我无法得到正确的语法如何做到这一点.如果我分手了-,那我该如何加入这两个部分呢?
对此进行迭代似乎很痛苦.
Joc*_*zel 23
要解决您的示例,您可以执行以下操作:
mydict = dict((k.strip(), v.strip()) for k,v in
(item.split('-') for item in s.split(',')))
Run Code Online (Sandbox Code Playgroud)
它做了三件事:
"<key> - <value>"部分:s.split(',')"<key> ", " <value>"两组:item.split('-')(k.strip(), v.strip())use*_*312 14
>>> s = 'A - 13, B - 14, C - 29, M - 99'
>>> dict(e.split(' - ') for e in s.split(','))
{'A': '13', 'C': '29', 'B': '14', 'M': '99'}
Run Code Online (Sandbox Code Playgroud)
编辑:下一个解决方案是当你想要值为整数时,我认为这是你想要的.
>>> dict((k, int(v)) for k, v in (e.split(' - ') for e in s.split(',')))
{'A': 13, ' B': 14, ' M': 99, ' C': 29}
Run Code Online (Sandbox Code Playgroud)
>>> dict((k.strip(),int(v.strip())) for k,v in (p.split('-') for p in s.split(',')))
{'A': 13, 'B': 14, 'M': 99, 'C': 29}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47416 次 |
| 最近记录: |