Python 将列表编入词典

Python 将列表编入词典,python,list,Python,List,假设你有一张清单 A = ["A: 1", "B: 2", "C: 3"] 你能把这本书编成词典吗 dict_A = {"A" : 1, "B": 2, "C": 3} 我在把这张单子编入字典时遇到了麻烦 In [1]: A = ["A: 1", "B: 2", "C: 3"] In [2]: {k:int(v.strip()) for k,v in (i.split(":") for i in A)} Out[2]: {'A': 1, 'B': 2, 'C': 3} 可以按如下方式有

假设你有一张清单

A = ["A: 1", "B: 2", "C: 3"]
你能把这本书编成词典吗

dict_A = {"A" : 1, "B": 2, "C": 3} 
我在把这张单子编入字典时遇到了麻烦

In [1]: A = ["A: 1", "B: 2", "C: 3"]

In [2]: {k:int(v.strip()) for k,v in (i.split(":") for i in A)}
Out[2]: {'A': 1, 'B': 2, 'C': 3}
可以按如下方式有效地拆包:

d = {}
for item in A:  # the first time around, item = "A: 1"
    key, value = item.split(":")  # key = "A", value = " 1"
    value = value.strip()  # value = "1"
    value = int(value)  # value = 1
    d[key] = value
可以按如下方式有效地拆包:

d = {}
for item in A:  # the first time around, item = "A: 1"
    key, value = item.split(":")  # key = "A", value = " 1"
    value = value.strip()  # value = "1"
    value = int(value)  # value = 1
    d[key] = value
这里每根绳子的长度是4。i[0]是类似于“A”的键,i[3]是类似于“1”的值。将其转换为int将得到所需的确切值,然后您只需为每个键值将其分配给字典


这里每根绳子的长度是4。i[0]是类似于“A”的键,i[3]是类似于“1”的值。将其转换为int将得到所需的确切值,然后您只需为每个键值将其分配给字典

一个很好的方法:

A = ["A: 1", "B: 2", "C: 3"]

A = [item.split(':') for item in A]
dict_A = dict([[key, int(val)] for key, val in A])

print(dict_A)  
>>  {'A': 1, 'B': 2, 'C': 3}
要分解每行及其返回的内容,请执行以下操作:

A = [item.split(':') for item in A]
>> [['A', ' 1'], ['B', ' 2'], ['C', ' 3']]  
第一次在上拆分后,中的每个索引现在包含两个项目的列表。并且每个索引都可以解包。例如:first,second=A[1]与first相同,second=A[1][0],A[1][1];在这两种情况下,“B”将分配给第一个,而“2”将分配给第二个 考虑到所有数字仍然是字符串,它们需要转换为int,但我们只想转换每个嵌套列表中的第二项;这是解包非常有用的地方,因为我们将只对第二项应用int转换

这可以在单个列表中很好地完成

[[key, int(val)] for key, val in A]
>> [['A', 1], ['B', 2], ['C', 3]]  
但是,考虑到您想要一本字典,我们可以调用dict将其转换为字典

dict([['A', 1], ['B', 2], ['C', 3]])
>> {'A': 1, 'B': 2, 'C': 3}

一个很好的方法是:

A = ["A: 1", "B: 2", "C: 3"]

A = [item.split(':') for item in A]
dict_A = dict([[key, int(val)] for key, val in A])

print(dict_A)  
>>  {'A': 1, 'B': 2, 'C': 3}
要分解每行及其返回的内容,请执行以下操作:

A = [item.split(':') for item in A]
>> [['A', ' 1'], ['B', ' 2'], ['C', ' 3']]  
第一次在上拆分后,中的每个索引现在包含两个项目的列表。并且每个索引都可以解包。例如:first,second=A[1]与first相同,second=A[1][0],A[1][1];在这两种情况下,“B”将分配给第一个,而“2”将分配给第二个 考虑到所有数字仍然是字符串,它们需要转换为int,但我们只想转换每个嵌套列表中的第二项;这是解包非常有用的地方,因为我们将只对第二项应用int转换

这可以在单个列表中很好地完成

[[key, int(val)] for key, val in A]
>> [['A', 1], ['B', 2], ['C', 3]]  
但是,考虑到您想要一本字典,我们可以调用dict将其转换为字典

dict([['A', 1], ['B', 2], ['C', 3]])
>> {'A': 1, 'B': 2, 'C': 3}

添加了解释。添加了解释。