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)

我目前正在学习python,并试图对嵌套列表执行一些操作。 我试图将每个子列表中的每个元素平方,然后将它们相加。 以下是我的意见:

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])