繁体   English   中英

如图所示,我有 2 个列表。 如何将 list_A 的所有元素除以 list_B?

[英]I have 2 lists as shown. How do i divide all the elements of list_A by list_B?

这是输入: list_A = [[1, 1, 1, 1, 1], [1, 2, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]

list_B = [5, 6, 6, 5]

我想要以下 output:

expected_output = [[1/5, 1/5, 1/5, 1/5, 1/5], [1/6, 2/6, 1/6, 1/6, 1/6], [1/6, 1/6, 1/6, 1/6, 1/6, 1/6], [1/5, 1/5, 1/5, 1/5, 1/5]]

list(list(map(lambda x: x/b, a)) for a, b in zip(list_A, list_B))

Output:

[[0.2, 0.2, 0.2, 0.2, 0.2], [0.16666666666666666, 0.3333333333333333, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666], [0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666], [0.2, 0.2, 0.2, 0.2, 0.2]]

使用 for 循环:

list_A = [[1, 1, 1, 1, 1], [1, 2, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
list_B = [5, 6, 6, 5]
expected_output = []

for idx, nums in enumerate(list_A):
   output_list = []
   for num in nums:
       output_list.append(num / list_B[idx])
   expected_output.append(output_list)

使用列表理解:

expected_output = [[num / list_B[idx] for num in nums] for idx, nums in enumerate(list_A)]

Output:

>> print(expected_output)
[[0.2, 0.2, 0.2, 0.2, 0.2], 
[0.16666666666666666, 0.3333333333333333, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666], [0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666], 
[0.2, 0.2, 0.2, 0.2, 0.2]]

我试过这样的事情:

list_A = [[1, 1, 1, 1, 1], [1, 2, 1, 1, 1], [1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
list_B = [5, 6, 6, 5]

for i in range(len(list_B)):
    list_A[i] = [x/list_B[i] for x in list_A[i]]
print(list_A)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM