将列表的每个整数乘以 Python 中另一个列表的整数
Multiply each integer of a list by the integer of another list in Python
对于模拟场景,我生成了 2 个随机列表。
例如:
my_list_1 = [17, 4, 22, 10, 18, 19, 23, 12]
my_list_2 = [82]
Just double checked the type of my_list_2 and the result is <class 'list'>
我需要用 82*17, 82*4, 82*22, etc.
的结果创建一个 new_list_3
我试过这种方法:
result_list_3 = []
for i in (my_list):
result_list_3.append(i * my_list_2)
我收到错误消息:
TypeError: can't multiply sequence by non-int of type 'list'
然后我制作了一本字典和一个 pd.DataFrame 来尝试以下操作:
df['result_list_3'] = df['my_list_1'] * df['my_list_2']
...我得到了一个巨大的整数列表,这显然不是我正在寻找的结果。
这可以通过 for 循环轻松解决:
result = []
for i in list1:
for l in list2:
result.append(i*l)
您可以使用列表理解:
result = [a*b for a in my_list_1 for b in my_list_2]
#[1394, 328, 1804, 820, 1476, 1558, 1886, 984]
它适用于任何长度的列表。
定义my_list_1
,my_list_2
为np.array
如下:
my_list_1 = np.array([17, 4, 22, 10, 18, 19, 23, 12])
my_list_2 = np.array([82])
然后,我们可以像下面这样使用 numpy 数组的 broadcasting
特性:
my_list_3 = my_list_1 * my_list_2
您将获得:
print(my_list_3)
array([1394, 328, 1804, 820, 1476, 1558, 1886, 984])
对于模拟场景,我生成了 2 个随机列表。
例如:
my_list_1 = [17, 4, 22, 10, 18, 19, 23, 12]
my_list_2 = [82]
Just double checked the type of my_list_2 and the result is <class 'list'>
我需要用 82*17, 82*4, 82*22, etc.
我试过这种方法:
result_list_3 = []
for i in (my_list):
result_list_3.append(i * my_list_2)
我收到错误消息:
TypeError: can't multiply sequence by non-int of type 'list'
然后我制作了一本字典和一个 pd.DataFrame 来尝试以下操作:
df['result_list_3'] = df['my_list_1'] * df['my_list_2']
...我得到了一个巨大的整数列表,这显然不是我正在寻找的结果。
这可以通过 for 循环轻松解决:
result = []
for i in list1:
for l in list2:
result.append(i*l)
您可以使用列表理解:
result = [a*b for a in my_list_1 for b in my_list_2]
#[1394, 328, 1804, 820, 1476, 1558, 1886, 984]
它适用于任何长度的列表。
定义my_list_1
,my_list_2
为np.array
如下:
my_list_1 = np.array([17, 4, 22, 10, 18, 19, 23, 12])
my_list_2 = np.array([82])
然后,我们可以像下面这样使用 numpy 数组的 broadcasting
特性:
my_list_3 = my_list_1 * my_list_2
您将获得:
print(my_list_3)
array([1394, 328, 1804, 820, 1476, 1558, 1886, 984])