Vic*_*tor 6 python dictionary list
我写了这样的东西来将逗号分隔的列表转换为字典。
def list_to_dict( rlist ) :
rdict = {}
i = len (rlist)
while i:
i = i - 1
try :
rdict[rlist[i].split(":")[0].strip()] = rlist[i].split(":")[1].strip()
except :
print rlist[i] + ' Not a key value pair'
continue
return rdict
Run Code Online (Sandbox Code Playgroud)
有没有办法
for i, row = enumerate rlist
rdict = tuple ( row )
Run Code Online (Sandbox Code Playgroud)
或者其他的东西?
你可以做:
>>> li=['a:1', 'b:2', 'c:3']
>>> dict(e.split(':') for e in li)
{'a': '1', 'c': '3', 'b': '2'}
Run Code Online (Sandbox Code Playgroud)
如果字符串列表需要剥离,您可以执行以下操作:
>>> li=["a:1\n", "b:2\n", "c:3\n"]
>>> dict(t.split(":") for t in map(str.strip, li))
{'a': '1', 'b': '2', 'c': '3'}
Run Code Online (Sandbox Code Playgroud)
或者,也:
>>> dict(t.split(":") for t in (s.strip() for s in li))
{'a': '1', 'b': '2', 'c': '3'}
Run Code Online (Sandbox Code Playgroud)
如果我正确理解您的要求,那么您可以使用以下一行。
def list_to_dict(rlist):
return dict(map(lambda s : s.split(':'), rlist))
Run Code Online (Sandbox Code Playgroud)
例子:
>>> list_to_dict(['alpha:1', 'beta:2', 'gamma:3'])
{'alpha': '1', 'beta': '2', 'gamma': '3'}
Run Code Online (Sandbox Code Playgroud)
您可能需要strip()分割后的键和值以修剪空白。
return dict(map(lambda s : map(str.strip, s.split(':')), rlist))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11200 次 |
| 最近记录: |