列表中列表的产品显示为列表
Product of a list in a list displayed as a list
输入参数:采用数字列表 [[x1, x2, x3, ..., xn],[y1, y2, y3, ..., ym],...]
Returns:单个数字列表,其中每个元素都是该位置内部列表的乘积,[x1*x2*x3*...*xn, y1*y2*y3*.. .*ym, ...]
不能使用附加运算符或其他内置函数。
我不知道如何准确地解决这个问题。这是我目前所拥有的:
def listProducts(x):
y = 1
z = 0
q = 0
l = ""
for i in x:
for j in range(len(i)):
z = int(i[j])
y = z * y
q = y
l = str(q) + l
l = list(l)
return l
a = [[1],[2,3,4],[10,10,10,10]]
print(listProducts(a))
我在网上找不到任何相关信息。而且我不应该使用任何内置函数,例如 numpy 或列表运算符。只需像上面所示的 list() 这样的循环和转换。
一种方法是使用列表推导,functools.reduce
to multiply all elements in the sublists, where you can multiply all elements in the sublist with operator.mul
a = [[1],[2,3,4],[10,10,10,10]]
from operator import mul
from functools import reduce
[reduce(mul,i) for i in a]
# [1, 24, 10000]
对于没有导入的解决方案,您可以这样做:
l = [1 for i in range(len(a))]
for ix, i in enumerate(a):
for j in i:
l[ix] *= j
print(l)
# [1, 24, 10000]
您可以使用 reduce
方法来获取列表乘法的结果。并使用列表理解来遍历列表。
from functools import reduce
a = [[1],[2,3,4],[10,10,10,10]]
a = [reduce(lambda x, y: x*y, i) for i in a]
print(a)
试试这个:
def listProducts(x):
y = 1
l = [0]*len(x)
for i in range(len(x)):
for j in range(len(x[i])):
z = int(x[i][j])
y = z * y
l[i] = y
return l
你可以简单地做:
inputlist=[[1,2,3],[4,5,6,7],[8,9,8,7,6]]
outputlist=[]
for each in inputlist:
result=1
for EACH in each:
result=result*EACH
outputlist.append(result)
print(outputlist)
给出输出:
[6, 840, 24192]
简单的解决方案,无需使用外部库和列表操作
a = [[1],[2,3,4],[10,10,10,10]]
len_a= len(a)
new_list = [0]*len_a
product = 1
for i in range(len(a)):
for j in range(len(a[i])):
product *= a[i][j]
new_list[i] = product
product = 1
print(new_list)
# output [1, 24, 10000]
输入参数:采用数字列表 [[x1, x2, x3, ..., xn],[y1, y2, y3, ..., ym],...]
Returns:单个数字列表,其中每个元素都是该位置内部列表的乘积,[x1*x2*x3*...*xn, y1*y2*y3*.. .*ym, ...]
不能使用附加运算符或其他内置函数。
我不知道如何准确地解决这个问题。这是我目前所拥有的:
def listProducts(x):
y = 1
z = 0
q = 0
l = ""
for i in x:
for j in range(len(i)):
z = int(i[j])
y = z * y
q = y
l = str(q) + l
l = list(l)
return l
a = [[1],[2,3,4],[10,10,10,10]]
print(listProducts(a))
我在网上找不到任何相关信息。而且我不应该使用任何内置函数,例如 numpy 或列表运算符。只需像上面所示的 list() 这样的循环和转换。
一种方法是使用列表推导,functools.reduce
to multiply all elements in the sublists, where you can multiply all elements in the sublist with operator.mul
a = [[1],[2,3,4],[10,10,10,10]]
from operator import mul
from functools import reduce
[reduce(mul,i) for i in a]
# [1, 24, 10000]
对于没有导入的解决方案,您可以这样做:
l = [1 for i in range(len(a))]
for ix, i in enumerate(a):
for j in i:
l[ix] *= j
print(l)
# [1, 24, 10000]
您可以使用 reduce
方法来获取列表乘法的结果。并使用列表理解来遍历列表。
from functools import reduce
a = [[1],[2,3,4],[10,10,10,10]]
a = [reduce(lambda x, y: x*y, i) for i in a]
print(a)
试试这个:
def listProducts(x):
y = 1
l = [0]*len(x)
for i in range(len(x)):
for j in range(len(x[i])):
z = int(x[i][j])
y = z * y
l[i] = y
return l
你可以简单地做:
inputlist=[[1,2,3],[4,5,6,7],[8,9,8,7,6]]
outputlist=[]
for each in inputlist:
result=1
for EACH in each:
result=result*EACH
outputlist.append(result)
print(outputlist)
给出输出:
[6, 840, 24192]
简单的解决方案,无需使用外部库和列表操作
a = [[1],[2,3,4],[10,10,10,10]]
len_a= len(a)
new_list = [0]*len_a
product = 1
for i in range(len(a)):
for j in range(len(a[i])):
product *= a[i][j]
new_list[i] = product
product = 1
print(new_list)
# output [1, 24, 10000]