我有一个列表,我想处理内部的信息。
lis = [[1,2,3,4],[1,5,6]]我想循环遍历这个列表,这样我就可以得到1 *(2*1/1) * (3*2/2) * (4*3/3)等等。此外,我知道乘并除以相同的数字返回您开始使用的数字,但我想在代码中隐式地声明它。在列表上执行此操作应返回
list = [[24],[30]]发布于 2017-04-28 01:40:34
我不知道你想用你写的算术说些什么,但这可能就是你要找的。
from functools import reduce
lis = [[1,2,3,4],[1,5,6]]
list = [[reduce(lambda x, y: x*y, l)] for l in lis]在一个循环中:
list = []
for l in lis:
# do stuff here
list.append(reduce(lambda x, y: x*y, l))
print(list)产出:
[[24], [30]]
注意:对于那些试图在Python3之前的版本中这样做的人,我相信reduce是一个内置的函数。
发布于 2019-09-30 13:28:51
用同数*1/1或*2/2在1 *(2*1/1) * (3*2/2) * (4*3/3)中乘法和除法对我来说没有多大意义。
使用此函数,您可能会得到您正在努力争取的结果,即[[24], [30]]
def list_mult(list_in):
list_out = []
for i in list_in:
result = 1
sub_list = []
for j in i:
result = result * j
sub_list.append(result)
list_out.append(sub_list)
print(list_out)用list_mult([[1,2,3,4],[5,6]])调用函数将给出[[24], [30]]。
https://stackoverflow.com/questions/43670305
复制相似问题