说我有一个列表,其中包含客户名称,销售金额以及在一家企业出售的商品。
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有点陌生。注意:这不是为了家庭作业,也不是为了工作,这只是我在尝试一种新语言的时候。
谢谢
答案 0 :(得分:1)
在遍历变量之前,您需要了解变量的类型。例如,如果我们遍历一个列表,则会分别获得每个列表项:
>>> 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.