修改嵌套列表

2 投票
4 回答
2691 浏览
提问于 2025-04-16 08:08

在Python中,如何处理嵌套列表?我在弄清楚语法时遇到了问题。比如这个例子:

>>> l = [[1, 2, 3], [5, 6, 7]]

我想把这个列表里的所有元素都平方。我试过:

[m*m for m in l]

但是这样不行,出现了这个错误:

类型错误:不能用非整数类型的'列表'去乘以序列

我想是因为有嵌套列表的原因吧?

我该怎么解决这个问题呢?

4 个回答

1
[[1,2,3],[4,5,6]] != [1,2,3,4,5,6]    

[map(lambda x: x *x,sl) for sl in l]    #List comprhension

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

1

假设你想要的答案是这样的:

[[1, 4, 9], [25, 36, 49]]

你可以这样做:

l = [[1, 2, 3], [5, 6, 7]]

for x in range(len(l)):
    for y in range(len(l[x])):
        l[x][y] = l[x][y] * l[x][y]

print l

显然,使用列表推导的答案更好。

9

当然可以!请看下面的内容:

在编程中,有时候我们需要让程序做一些特定的事情,比如处理数据、显示信息或者与用户互动。为了实现这些功能,我们通常会使用一些代码块,这些代码块就像是程序的“指令”,告诉计算机该怎么做。

在这个例子中,

>>> l = [[1, 2, 3], [5, 6, 7]]
>>> [[e*e for e in m] for m in l]
     |-nested list-|
    |----   complete list    ---|
[[1, 4, 9], [25, 36, 49]]
就是一个代码块的占位符,里面可能包含了一些具体的代码,帮助我们完成某个任务。我们可以把它想象成一个工具箱,里面装着我们需要的工具,随时可以拿出来用。

希望这个解释能帮助你更好地理解编程中的一些基本概念!

撰写回答