Перебор списка для разделения элементов на несколько списков - Python - PullRequest
0 голосов
/ 10 ноября 2019

Скажем, у меня есть список, который содержит имя клиента, сумму продажи и товар, проданный на предприятии.

В списке Transactions_clean есть эти три элемента

Теперь я хочу разделить ихв трех отдельных списках:

customers = []
sales = []
items = []

, в другом примере я работал со следующим, работал отлично

for customer in transactions_clean:
  customers.append(customer[0])
for sale in transactions_clean:
  sales.append(sale[1])
for item in transactions_clean:
  items.append(item[2])

Когда он использовал это для другого списка, он разделил элементы во всю их длинув каждом списке. Однако в этом примере для имени клиента оно разделяется только на отдельные символы в списке клиентов. Может кто-нибудь сказать, пожалуйста, что я делаю не так? Я немного новичок в Python. Примечание: это не для домашней работы, и не для работы, просто я в свое время пытаюсь выбрать новый язык.

Спасибо

1 Ответ

1 голос
/ 10 ноября 2019

Прежде чем вы зациклите переменную, вам нужно знать, какой это тип переменной. Например, если мы перебираем список, мы получаем каждый элемент списка индивидуально:

>>> customers = ['tom', 'dick', 'harry']
>>> for person in customers:
>>>    print(person)
tom
dick
harry

Но если мы перебираем строку, мы получаем каждый символ индивидуально:

>>> purchase = 'wine'
>>> for letter in purchase:
>>>    print(letter)
w
i
n
e

Похоже, что выперебираете строку, когда вы ожидаете перебора списка. Попробуйте адаптировать что-то подобное к вашей проблеме:

>>> customer_transactions = [['tom', 10.99, 'bottle of wine'],
                             ['dick', 14.49, '400g blue stilton'],
                             ['harry', 5.00, 'six pack of fosters']]

>>> customers = []
>>> sales = []
>>> items = []

>>> for transaction in customer_transactions:
>>>     customers.append(transaction[0])
>>>     sales.append(transaction[1])
>>>     items.append(transaction[2])

Теперь, поскольку customers, sales и items - это все списки, которые мы можем перебирать и по ним:

# continued from last code block
>>> for person in customers:
>>>     print(f"Thank you, {person}.")
Thank you, tom.
Thank you, dick.
Thank you, harry.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...