使用 Python 将列表转换为字典
Transforming list into dictionary with Python
有一个值列表:
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
为什么我得到的不是 {'from': '1', 'to': '16'}
{'from': '16', 'to': '16'}
。我的代码做错了什么?
keys = ["from", "to"]
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
for i in list_inside[::len(list_inside)-1]:
result = dict((key, i.join(i.split(":", 2)[2::1])) for key in keys)
print(result)
使用
keys = ["from", "to"]
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
result = {} #Declare empty dict
for key, v in zip(keys, list_inside[::len(list_inside)-1]):
result.update({key: v.split(":", 2)[-1])}) #Use dict.update to update the required values.
print(result)
输出:
{'to': '16', 'from': '1'}
您当前的方法是覆盖 result
变量。
你在一个循环中做了 result =
几次。
很明显,这里只有最后一次迭代才有效
这段代码得到了您所期望的结果。
-1
做了简单的代码。
keys = ["from", "to"]
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
result = {}
result[keys[0]] = list_inside[0].split(':')[2]
result[keys[1]] = list_inside[-1].split(':')[2]
print (result)
有一个值列表:
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
为什么我得到的不是 {'from': '1', 'to': '16'}
{'from': '16', 'to': '16'}
。我的代码做错了什么?
keys = ["from", "to"]
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
for i in list_inside[::len(list_inside)-1]:
result = dict((key, i.join(i.split(":", 2)[2::1])) for key in keys)
print(result)
使用
keys = ["from", "to"]
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
result = {} #Declare empty dict
for key, v in zip(keys, list_inside[::len(list_inside)-1]):
result.update({key: v.split(":", 2)[-1])}) #Use dict.update to update the required values.
print(result)
输出:
{'to': '16', 'from': '1'}
您当前的方法是覆盖 result
变量。
你在一个循环中做了 result =
几次。
很明显,这里只有最后一次迭代才有效
这段代码得到了您所期望的结果。
-1
做了简单的代码。
keys = ["from", "to"]
list_inside = ["de:14612:1","de:14612:21","de:14612:17","de:14612:16"]
result = {}
result[keys[0]] = list_inside[0].split(':')[2]
result[keys[1]] = list_inside[-1].split(':')[2]
print (result)