[英]How do I print lists side by side in Python?
新用戶練習列表和循環。 我的目標是從我自己的輸入中創建兩個列表(范圍為 2 以進行快速測試,但希望達到 10)。 我在兩個問題上遇到了困難:
名字 \t\t\t $77
下一個名字 \t\t\t $16
我的代碼:
list1 = []
list2 = []
count = 0
for i in range(2):
customers = input("Customers name? ")
list1.append(customers)
spent = float(input("Amount spent? "))
list2.append(spent)
count += spent
averageSpent = count / 2 # change this when changing range
print("Name\t\t\tAmount")
# won't print side by side. how to use zip()?
print((*list1 + list2), sep = "\n")
print("Total spending:\t\t $", count)
print("Average spending:\t $", averageSpent)
# keep getting 'object is not iterable'
#print("Most money spent:\t $", max(spent))
#print("Least money spent:\t $", min(spent))
我的 output 目前是:
客戶姓名? 工作
花費金額? 45
客戶姓名? 請
花費金額? 65
名稱 金額
工作
請
45.0
65.0
總支出:$ 110.0
平均消費:55.0 美元
謝謝!
並排打印的東西在這里得到回答: 並排打印 2 個列表
關於 float 或 int 不可迭代的錯誤是因為您調用的是max(spent)
而不是max(list2)
。 function max()
需要一個列表或其他可迭代的 object。
關於您遇到的第一個問題,並排打印 output 的最佳方法是遍歷列表並打印列表中的每個值。 除此之外,您還可以使用 f-strings,這是我們在 python 3.6 中添加的一項功能,它允許您執行以下操作:
x = 10
print(f'{x+20}')
>> 30
您可以 在此處閱讀有關 f 字符串的更多信息。
關於您面臨的第二個問題。 您收到此錯誤是因為您在單個浮點數上調用 max() function。 應調用最大 function 以獲得列表。
我做了一些調整。 這是最終代碼的樣子:
list1 , list2 = [] , []
max_range = 2
count = 0
for i in range(max_range):
customer_name = input("Customer name: ")
list1.append(customer_name)
spent = float(input("Amount Spent: "))
list2.append(spent)
count += spent
averageSpent = count / max_range
print("Name\t\t\tAmount")
for i in range(len(list1)):
print(f'{list1[i]} \t\t\t$ {list2[i]}')
print("Total spending:\t\t $", count)
print("Average spending:\t $", averageSpent)
print("Most money spent:\t $", max(list2))
print("Least money spent:\t $", min(list2))
編輯:使用 zip function 可能是使用元組並排打印兩個輸出的另一種選擇。 但是,由於您已經說過您對這些主題不熟悉,我認為您應該遠離 zip(暫時),直到您對列表感到滿意為止。
bikemule 關於迭代是正確的。 您需要使用列表而不是單個號碼來調用max
。 ( max(101)
會返回什么?這不太合理。)
要使兩個列表並排顯示,您可以將zip
與for
循環結合使用。 它將列表轉換為元組集,然后在打印時以幾乎表格的格式出現。
list_a = [1, 2, 3]
list_b = [4, 5, 6]
for col_a, col_b in zip(list_a, list_b):
print("A_Item: %s | B_Item: %d" %(col_a, col_b))
回報:
A_Item: 1 | B_Item: 4
A_Item: 2 | B_Item: 5
A_Item: 3 | B_Item: 6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.