如何在字典中将列表乘以整数?
How to multiply list by integer within dictionary?
example = {'good':[1,2],'bad':[5,10],'great':[9,4]}
example2 = {'good':2,'bad':3}
我想将列表值乘以匹配键的整数并创建一个新字典,所以我应该得到:
example3 = {'good':[2,4],'bad':[15,30]}
我该怎么做?我试过:
示例 3 = {k:example.get(k) * example2.get(k) for k in set(example) & set(example2)}
但输出是:{'bad': [5, 10, 5, 10, 5, 10], 'good': [1, 2, 1, 2]}
我遇到的问题是如何将列表值乘以整数。
您的代码将 example1 中的每个对应列表(值)复制的次数与 example2 中的值一样多。
您的代码类似于:
>>>>two_items = ["A","B"]
>>>>number = [3]
>>>>result = two_items*number[0]
['A', 'B', 'A', 'B', 'A', 'B']
为了清楚起见,它的工作方式类似于字符串乘法:
>>>>my_string="Hello "
>>>>print(my_string * number[0])
Hello Hello Hello
您需要做的是遍历列表中的每个项目并将其乘以给定的数字,如下所示:
>>>>two_numbers=[1,2]
>>>>number=[3]
>>>>result=[]
>>>>for num in two_numbers:
>>>> x =num * number[0]
>>>> result.append(x)
[3, 6]
鉴于上述情况,您的代码应如下所示:
example3 = {}
for key in example2.keys():
temp =[]
for item in example[key]:
temp.append(item*example2[key])
example3[key]=temp
example = {'good':[1,2],'bad':[5,10],'great':[9,4]}
example2 = {'good':2,'bad':3}
我想将列表值乘以匹配键的整数并创建一个新字典,所以我应该得到:
example3 = {'good':[2,4],'bad':[15,30]}
我该怎么做?我试过:
示例 3 = {k:example.get(k) * example2.get(k) for k in set(example) & set(example2)}
但输出是:{'bad': [5, 10, 5, 10, 5, 10], 'good': [1, 2, 1, 2]}
我遇到的问题是如何将列表值乘以整数。
您的代码将 example1 中的每个对应列表(值)复制的次数与 example2 中的值一样多。
您的代码类似于:
>>>>two_items = ["A","B"]
>>>>number = [3]
>>>>result = two_items*number[0]
['A', 'B', 'A', 'B', 'A', 'B']
为了清楚起见,它的工作方式类似于字符串乘法:
>>>>my_string="Hello "
>>>>print(my_string * number[0])
Hello Hello Hello
您需要做的是遍历列表中的每个项目并将其乘以给定的数字,如下所示:
>>>>two_numbers=[1,2]
>>>>number=[3]
>>>>result=[]
>>>>for num in two_numbers:
>>>> x =num * number[0]
>>>> result.append(x)
[3, 6]
鉴于上述情况,您的代码应如下所示:
example3 = {}
for key in example2.keys():
temp =[]
for item in example[key]:
temp.append(item*example2[key])
example3[key]=temp