嵌套列表的基本python操作

uxh89sit  于 2021-08-20  发布在  Java
关注(0)|答案(4)|浏览(407)

对于以下嵌套列表, Lst ,我需要保留第一个内部列表,对第二个列表进行平方运算,对最后一个列表进行立方体运算。

Lst = [[1,2,3],[2,3,4],[3,4,5]]

我当前的代码正在对列表中的所有嵌套列表进行平方运算 Lst .

list(map(lambda lst: list(map(lambda x: x**2, lst)), Lst))

我怎样才能解决这个问题?我刚开始学习python。

bnl4lu3b

bnl4lu3b1#

由于对每个嵌套列表执行的操作不同,因此不应使用 map() 对于顶级列表。只需为每个Map列出不同Map的结果。

[Lst[0], list(map(lambda x: x**2, lst[1])), list(map(lambda x: x**3, lst[2]))]

然而,这有一个明显的模式,所以您可以使用 enumerate() 和一份清单:

[list(map(lambda x: x**i, sublist)) for i, sublist in enumerate(Lst, 1)]
a0x5cqrl

a0x5cqrl2#

[list(map(lambda x: x**i, l)) for i,l in enumerate(Lst, 1)]
[[1, 2, 3], [4, 9, 16], [27, 64, 125]]
euoag5mw

euoag5mw3#

您的处理显然需要考虑您在列表中的位置。将其压成一行使其比实际需要的密度更高,但看看你是否可以用铅笔和纸来完成。

[[x if i == 0 else x**2 if i == 1 else x**3 for x in Lst[i]] for i in range(3)]

演示:https://ideone.com/o8y0ta
... 或者,正如巴尔马在回答中巧妙地指出的那样,

[[x**i for x in Lst[i]] for i in range(3)]
e4yzc0pl

e4yzc0pl4#

尝试为外部列表编制索引,然后对每个索引调用map函数

def square(number) :
    return number**2
def cube(number) :
    return number**3

lst = [[1,2,3],[2,3,4],[3,4,5]]

lst[0] = lst[0]
lst[1] = list(map(square, lst[1]))
lst[2] = list(map(cube, lst[2]))

print(lst)

相关问题