сохранить выходные данные каждой итерации цикла, чтобы разделить вложенный список - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть список списков, который выглядит следующим образом 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 , так как я прочитал решения. Я хочу хранить свои списки в отдельных списках. который отличается

1 Ответ

0 голосов
/ 30 сентября 2019

Если вы просто хотите распаковать список, тогда вы можете сделать то, что сказал Крис выше, и просто сделать a,b,c,d,e = mylst, но если вам нужно упаковать данные более удобным способом, то я предлагаю сохранить это в pandasdataframe. Вы можете сделать это с помощью следующего кода

import numpy as np
import pandas as pd

my_df = pd.DataFrame(np.array(mylst).reshape(-1, 2),
    columns=['item', 'quantity']) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...