use*_*606 0 python dictionary list
我的清单是这样的,
['"third:4"', '"first:7"', '"second:8"']
Run Code Online (Sandbox Code Playgroud)
我想把它转换成这样的字典......
{"third": 4, "first": 7, "second": 8}
Run Code Online (Sandbox Code Playgroud)
我如何在Python中执行此操作?
这里有两个可能的解决方案,一个给你字符串值,另一个给你int值:
>>> lst = ['"third:4"', '"first:7"', '"second:8"']
>>> dict(x[1:-1].split(':', 1) for x in lst)
{'second': '8', 'third': '4', 'first': '7'}
>>> dict((y[0], int(y[1])) for y in (x[1:-1].split(':', 1) for x in lst))
{'second': 8, 'third': 4, 'first': 7}
Run Code Online (Sandbox Code Playgroud)
但是,为了便于阅读,您可以将转换分为两个步骤:
>>> lst = ['"third:4"', '"first:7"', '"second:8"']
>>> dct = dict(x[1:-1].split(':', 1) for x in lst)
>>> {k: int(v) for k, v in dct.iteritems()}
Run Code Online (Sandbox Code Playgroud)
当然,这会产生一些开销,因为你创建了一个dict两次 - 但是对于一个小列表来说并不重要.