📜  Python|列表列表中的自定义乘法

📅  最后修改于: 2022-05-13 01:55:09.610000             🧑  作者: Mango

Python|列表列表中的自定义乘法

有时,当我们收到列表列表时,我们需要将其每个元素列表与由另一个列表中的顺序提供的特定元素相乘。这个特定问题非常具体,但在这种情况下了解它可能很有用。让我们讨论一些可以做到这一点的方法。

方法#1:使用循环

这是执行此特定任务的天真和蛮力方法,我们在其中运行一个循环以获取所有元素及其嵌套组件并相应地相乘。

# Python3 code to demonstrate
# Custom Multiplication in list of lists
# Using loops
  
# initializing list
test_list = [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
  
# initializing multiply list 
mult_list = [10, 20, 30]
  
# printing original list
print("The original list : " + str(test_list))
  
# printing multiply list
print("The original multiply list : " + str(mult_list))
  
# using loops
# Custom Multiplication in list of lists
res = [[] for idx in range(len(test_list))]
for i in range(len(test_list)):
    for j in range(len(mult_list)):
        res[i] += [mult_list[i] * test_list[i][j]]
  
# print result
print("The list after multiply : " + str(res))
输出 :
The original list : [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
The original multiply list : [10, 20, 30]
The list after multiply : [[50, 60, 80], [140, 80, 60], [240, 300, 360]]

方法 #2:使用列表理解 + enumerate()

也可以使用enumerate函数的强大功能以更短的方式解决此问题,以一次获取容器的索引和值。这是解决此问题的单线方法。

# Python3 code to demonstrate
# Custom Multiplication in list of lists
# Using list comprehension + enumerate()
  
# initializing list
test_list = [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
  
# initializing multiply list 
mult_list = [10, 20, 30]
  
# printing original list
print("The original list : " + str(test_list))
  
# printing multiply list
print("The original multiply list : " + str(mult_list))
  
# using list comprehension + enumerate()
# Custom Multiplication in list of lists
res = [[mult_list[i] * j for j in sub] 
       for i, sub in enumerate(test_list)]
  
# print result
print("The list after multiply : " + str(res))
输出 :
The original list : [[5, 6, 8], [7, 4, 3], [8, 10, 12]]
The original multiply list : [10, 20, 30]
The list after multiply : [[50, 60, 80], [140, 80, 60], [240, 300, 360]]