将列表的每个整数乘以 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_2np.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])