如何在Python3中解压嵌套列表?

2024-04-26 10:34:32 发布

您现在位置:Python中文网/ 问答频道 /正文

Lst = [[1,2,3],[201,202,203],[3,1,4],[591,2019,3.14]]

我需要的是-

^{pr2}$

等等。。。在


Tags: lstpr2
3条回答

你想把值映射到坐标。好吧,您可以通过两个列表操作直接通过L[outer_list_idx][inner_list_idx]进行访问。在

对于非数字索引,请使用dict

你可以使用字典来查找变量的数目。这就不需要显式地定义大量变量。在

使用字母有一个明显的限制,最多允许26个列表。如果这是您希望的,则无需显式定义字母,请使用string.ascii_lowercase

from string import ascii_lowercase

L = [[1,2,3],[201,202,203],[3,1,4],[591,2019,3.14]]

m, n = len(L), len(L[0])

d = {(ascii_lowercase[j], i+1): L[i][j] for i in range(m) for j in range(n)}

print(d)

{('a', 1): 1, ('b', 1): 2, ('c', 1): 3,
 ('a', 2): 201, ('b', 2): 202, ('c', 2): 203,
 ('a', 3): 3, ('b', 3): 1, ('c', 3): 4,
 ('a', 4): 591, ('b', 4): 2019, ('c', 4): 3.14}

然后通过元组键访问。因此,要从第三个列表中检索第二个值,可以使用d[('b', 3)]。在

您可以use ^{}执行此操作:

t = [[1,2,3],[201,202,203],[3,1,4],[591,2019,3.14]]

from itertools import chain 
a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4 = chain.from_iterable(t) # flattens the list of lists

print(a1,b1,c1,a2,b2,c2,a3,b3,c3,a4,b4,c4)

输出:

^{pr2}$

您需要事先知道列表的维度和变量名称。我可能会使用原始列表。。。在

你只需要价值观吗?然后像这样:

Lst = [[1,2,3],[201,202,203],[3,1,4],[591,2019,3.14]]

for k in Lst:

    a, b, c = k
    print(a, b, c)

相关问题 更多 >