保存每个for循环迭代的输出以拆分嵌套的lis

2024-10-03 13:25:42 发布

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

我有一个列表,看起来像这样mylst

[[('Salmon', 9), ('Fish&Chips', 3), ('Pasta', 8), ('Shrimp', 10)],
 [('Shrimp', 8), ('Fish&Chips', 10), ('Salmon', 9), ('Pasta', 7)],
 [('Shrimp', 10), ('Fish&Chips', 6), ('Salmon', 8), ('Pasta', 5)],
 [('Shrimp', 7), ('Pasta', 9), ('Salmon', 8), ('Fish&Chips', 8)],
 [('Fish&Chips', 10), ('Shrimp', 8), ('Salmon', 9), ('Pasta', 3)]]

如果我打印所需的索引,我可以访问子列表

mylst[0]

它回来了

[('Salmon', 9), ('Fish&Chips', 3), ('Pasta', 8), ('Shrimp', 10)]

但我想将每个子列表存储在一个新列表中。你知道吗

因为最终我想为每个子列表提取项目(元组索引0)和订购数量(元组索引1),并将它们存储在两个单独的列表中。但是如果我不能拆分列表,我就不能这样做

我试着遍历主列表

newlst=[]

for sublst in mylst:
    newlst.append(sublst)

以及

newlst=[]

for i in range(len(mylst)):
    for sublst in mylst:
        newlst.append(mylst[i])

我不知道如何拆分然后存储for循环每次迭代的多个输出。你知道吗

所需的输出是将5个子列表作为单独的列表。例如

lst1=[('Salmon', 9), ('Fish&Chips', 3), ('Pasta', 8), ('Shrimp', 10)]

lst2 = [('Shrimp', 8), ('Fish&Chips', 10), ('Salmon', 9), ('Pasta', 7)]

等等。你知道吗

注意:我的问题不是这个one的重复,因为我已经阅读了解决方案。我想把我的子列表存储在不同的列表中。这是不同的。你知道吗


Tags: 项目in列表for数量元组fishappend
1条回答
网友
1楼 · 发布于 2024-10-03 13:25:42

如果您只想解包列表,那么您可以按照Chris上面所说的做a,b,c,d,e = mylst,但是如果您想以更有用的方式重新打包数据,那么我建议将其存储在一个数据帧中。您可以使用以下代码来实现这一点

import numpy as np
import pandas as pd

my_df = pd.DataFrame(np.array(mylst).reshape(-1, 2),
    columns=['item', 'quantity']) 

相关问题 更多 >