如何从一个列表分配到另一个列表?

时间:2014-04-16 16:11:59

标签: python list

如果我得到3个列表

List1 = ["A","B","C"] 
List2 = [1,2,3]
List3 = [4,5,6]

如何分配和汇总List2& List3到List1以便

A = 5
B = 7
c = 9

3 个答案:

答案 0 :(得分:5)

使用词典理解:

>>> {key: a + b for key, a, b in zip(List1, List2, List3)}
{'A': 5, 'C': 9, 'B': 7}

我必须承认你的问题令人困惑。也许你正在寻找这个?

>>> List1 = [a + b for a, b in zip(List2, List3)]
>>> List1
[5, 7, 9]

答案 1 :(得分:4)

您可以zip List2List3获取

[(1, 4), (2, 5), (3, 6)]

然后,您可以使用sum函数对单个元组进行求和,如下所示

List1 = map(sum, zip(List2, List3))
print List1
# [5, 7, 9]

如果您正在寻找一种方法来创建字典,您只需zip List1和我们使用sum计算的map值,获得<{1}}

sum

如果我们将其传递给zip(List1, map(sum, zip(List2, List3))) # [('A', 5), ('B', 7), ('C', 9)] 函数,我们会得到一个新词典:)

dict

答案 2 :(得分:1)

     >>> total=[]
     >>> List1 = ["A","B","C"]
     >>> List2 = [1,2,3]
     >>> List3 = [4,5,6]
     >>> for i in range(len(List2)):
         total.append(List2[i]+List3[i])
     >>> total
         #[5, 7, 9]
     >>>dic={}
     >>> for i in range(len(List1)):
             dic.update({List1[i]:total[i]})
     >>> dic
        #{'A': 5,'C': 9,'B': 7}