我有一个看起来像这样的列表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的重复。我想将子列表存储在单独的列表中。这是不同的。
答案 0 :(得分:0)
如果您只想解压缩列表,则可以按照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'])
答案 1 :(得分:0)
您可以使用 for
循环创建一个庞大的嵌套列表,每个循环都包含所需的列表。
for each in lst:
seplist = [] #splitted list of each digit of every integer
for eachagain in str(each):
seplist.append(integer)
nestedlist.append(seplist)
这里的嵌套列表可以通过使用另一个for
循环来分离和存储