簡體   English   中英

在 Python 中查找列表中的項目及其價格

[英]Finding items in a list along with their price in Python

用於查找項目的 Python 代碼

Price_list = ["01", "Banana", 5.00, "unit", "02", "Mango", 20.00, "kg", 
              "03", "Apple", 15.00, "kg", "04", "Papaya", 25.00, "unit", 
              "05", "Guava", 15.00, "kg"]

print( ("Price List:"))
print( ("-----------"))
print("Item no  Item name  Price  Unit")
for i in range(0, 20, 4):
    # This is the correct one because this can access all the items in the list.
    print("{0:7} {1:9} {2:5} {3:4)".format(Price_list[i],
          Price_list[i+1], Price_list[i+2], Price_list[i+3]))

在這里,我想編寫一個代碼,在詢問用戶的輸入(即水果的名稱)后,給出列表中水果的名稱和價格。

此代碼有效:-

price_list = ["01","Banana", 5.00, "unit", "02", "Mango", 20.00, "kg", "03", "Apple", 15.00, "kg", "04", "Papaya", 25.00, "unit", "05", "Guava", 15.00, "kg"]

fruit = input("Enter fruit name: ").capitalize()
fruit_index = price_list.index(fruit)

print(f"{fruit} is ${price_list[fruit_index+1]} per {price_list[fruit_index+2]}")

平面列表可以用於這種查詢 - 您可以獲取水果的索引並對其進行加/減以獲取其對應的值。 不過,將您的數據整理成更好的數據結構/形狀可能會更好:

# flat list
items = ["01","Banana", 5.00, "unit", "02", "Mango", 20.00, "kg", 
         "03", "Apple", 15.00, "kg", "04", "Papaya", 25.00, "unit", 
         "05", "Guava", 15.00, "kg"]

# order of data headers inside items
headers = ["Number","Name","Price","Unit"]

# transform your data to something you can work with
i = {items[pos+1] : dict(zip(headers, items[pos:pos+4])) 
     for pos in range(0,len(items),len(headers))}

# this will create this dictionary
# {'Banana': {'Number': '01', 'Name': 'Banana', 'Price':  5.0, 'Unit': 'unit'}, 
#  'Mango':  {'Number': '02', 'Name': 'Mango',  'Price': 20.0, 'Unit': 'kg'}, 
#  'Apple':  {'Number': '03', 'Name': 'Apple',  'Price': 15.0, 'Unit': 'kg'}, 
#  'Papaya': {'Number': '04', 'Name': 'Papaya', 'Price': 25.0, 'Unit': 'unit'}, 
#  'Guava':  {'Number': '05', 'Name': 'Guava',  'Price': 15.0, 'Unit': 'kg'}}

what = input(f"What do you want? [{(', '.join(i))}] ")

# get the item or a default result dictionary with "out" in it
w = i.get(what, {"Number":"out", "Name":what, "Price":"out", "Unit": "None"})

# print it
print(w["Name"], "=>", w["Price"])

輸出:

What do you want? [Banana, Mango, Apple, Papaya, Guava] Appleees
Appleees => out

What do you want? [Banana, Mango, Apple, Papaya, Guava] Mango
Mango => 20.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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