簡體   English   中英

如何在 Python 中並排打印列表?

[英]How do I print lists side by side in Python?

新用戶練習列表和循環。 我的目標是從我自己的輸入中創建兩個列表(范圍為 2 以進行快速測試,但希望達到 10)。 我在兩個問題上遇到了困難:

  1. 我希望我的清單並排放置,即。

名字 \t\t\t $77

下一個名字 \t\t\t $16

  1. 我不知道如何更改我的類型,以便 int 或 float 不可迭代錯誤不會持續存在。 我相信它會幫助我編寫出最大/最小語句

我的代碼:

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)會返回什么?這不太合理。)

要使兩個列表並排顯示,您可以將zipfor循環結合使用。 它將列表轉換為元組集,然后在打印時以幾乎表格的格式出現。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM