Python 对嵌套列表执行操作
我目前正在学习python,并试图对嵌套列表执行一些操作。 我试图将每个子列表中的每个元素平方,然后将它们相加。 以下是我的意见:Python 对嵌套列表执行操作,python,python-3.x,list,Python,Python 3.x,List,我目前正在学习python,并试图对嵌套列表执行一些操作。 我试图将每个子列表中的每个元素平方,然后将它们相加。 以下是我的意见: k=[[0.4285714285714286, -0.6428571428571428, 0.2142857142857144], [-0.14285714285714324, -0.28571428571428603, 0.4285714285714284]] 预期的输出是这样的 (0.6428571428571428,0.28571428571428586)
k=[[0.4285714285714286, -0.6428571428571428, 0.2142857142857144],
[-0.14285714285714324, -0.28571428571428603, 0.4285714285714284]]
预期的输出是这样的
(0.6428571428571428,0.28571428571428586)
或
我试着用这个
result=sum(n*n for n in k)
result
但出现了一个错误,列表不能乘以非整数。
我有点纠结于嵌套列表的概念,所以如果你们能帮助我,我将非常高兴。此外,我不能使用numpy或任何外部库。
谢谢试试:
k=[[0.4285714285714286, -0.6428571428571428, 0.2142857142857144],
[-0.14285714285714324, -0.28571428571428603, 0.4285714285714284]]
result=[sum(n*n for n in sublist) for sublist in k]
print(result)
输出
[0.6428571428571428, 0.28571428571428586]
解释
k - has nested lists (i.e. sublists)
sum(n*n for n in sublist) - sums of squares over a nested list
for sublist in k - iterates over each nested list
使用简单地图、lambda和列表理解:
k= [[0.4285714285714286, -0.6428571428571428, 0.2142857142857144],
[-0.14285714285714324, -0.28571428571428603, 0.4285714285714284]]
res = [sum(map(lambda x:x*x, j)) for j in k]
print(res) # output [0.6428571428571428, 0.28571428571428586]
print(*res) # output 0.6428571428571428, 0.28571428571428586
首先,你必须知道你写的“k中的n”是做什么的? 基本上,当你遍历名为“k”的列表时,你会一个接一个地得到另外两个列表!因此,为了能够访问其中的数字,您应该再次迭代这两个列表: 您的解决方案可以是:
print([sum(number ** 2 for number in list) for list in k])
如果只有一个列表(例如[a,b,c]),那么您需要执行什么操作?结果=[sum(n*n表示j中的n)表示j中的k]@Python\u learner——很高兴为您提供帮助。我的代码由一个生成器和列表组成。只有列表理解的版本是:result=[sum([n*n表示子列表中的n]),对于k中的子列表是[code>。如果您还不熟悉生成器,并且这是硬件练习的一部分,那么请使用列表理解版本。
print([sum(number ** 2 for number in list) for list in k])