修改嵌套列表
在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]]
就是一个代码块的占位符,里面可能包含了一些具体的代码,帮助我们完成某个任务。我们可以把它想象成一个工具箱,里面装着我们需要的工具,随时可以拿出来用。
希望这个解释能帮助你更好地理解编程中的一些基本概念!