簡體   English   中英

如何使用for循環和帶用戶輸入的if語句在python字典中的鍵/值之間循環?

[英]How do I cycle through keys/values in a python dictionary using a for loop and if statement with user input?

這是我的第一個問題,非常感謝您抽出寶貴的時間閱讀本文。 在Python中,我想創建一個應用程序,允許用戶回答有關產品的問題,然后顯示該產品是否符合所有正確的屬性。 1)因此,它應該詢問用戶...“選擇品牌?2)如果他們選擇正確,那么它會說“選擇顏色?” 3)如果他們選擇正確,則應該說“產品可用” 。” 4)如果他們在任何時候選擇了不可用的品牌或顏色,它將顯示不可用。

這是我到目前為止所做的。

tshirts = [{'brand':'Hanes', 'color':'black'},
      {'brand':'Hurley', 'color':'red'}]

brand = input("Search a tshirt brand: ")
color = input("Search color: ")

for tshirt in tshirts:
    if tshirt["brand"] == brand:
        print(tshirt)
        print("Available")
    else:
        print("Not available")

因此,一旦用戶鍵入“ Hanes”然后詢問顏色,以及用戶是否鍵入“黑色”,它應該返回“該產品可用”,我不知道如何分辨。 如果他們選擇“橙色”,則應說“不可用”。

再次感謝您閱讀本文,並希望一旦我學到更多,我可以成為做出貢獻和回答問題的人!

我使用列表理解作為執行for循環的一種較短方法,然后只是執行了三元運算符來測試字典的顏色是否與指定的顏色相同。 如果您在顏色列表中有多種顏色,只需將三元運算符中的==替換為in

tshirts = [{'brand':'Hanes', 'color':'black'},
      {'brand':'Hurley', 'color':'red'}]

brand = input("Search a tshirt brand: ")
color = input("Search color: ")

shirt = [t for t in tshirts if t['brand'] == brand][0]
print("Available" if shirt['color'] == color else "Unavailable")

您創建的“ T恤”是一個列表。 它不是字典。 嘗試使用熊貓創建字典或數據框,然后可以實現所需的功能。

您在正確的軌道上。 只需將代碼的后半部分更改為此:

for tshirt in tshirts:
if tshirt["brand"] == brand:
    print(tshirt)
    if tshirt["color"] == color:
        print("Available")
    else:
        print("Not available")
else:
    print("Not available")

檢查品牌是否可用后,請檢查是否有細分,如果顏色可用,然后進行相應打印。

一個簡單的答案,我想最好的答案已經給出了。

tshirts = [{'brand':'Hanes', 'color':'black'},
      {'brand':'Hurley', 'color':'red'}]

resDict = {}
hasKey = False
brand = input("Search a tshirt brand: ")
for tshirt in tshirts:
    if tshirt["brand"] == brand:
        hasKey = True
        resDict = tshirt
        break
if hasKey:
    if resDict['color']==input("Search color: "):
        print("Available")
    else:
        print("Not Available")
else:
    print("Not available")

您創建的“ T恤”是一個列表。 它不是字典。 嘗試使用熊貓創建字典或數據框,然后可以實現所需的功能。

tshirts = {
    "Hanes": {'colors':['black','blue','red']},
     "Hurley": {'color':['red','green']}
}

您甚至可以擁有上述品牌的顏色列表

brandinput=input("Search Brand")
if brandinput in tshirts.keys():
    print(brandinput+" available in colors",tshirts.get(brandinput)['colors'])

colorinput=input("Select Color:")
if colorinput in tshirts.get(brandinput)['colors']:
    print("Color available")
else: print(colorinput," color not available")
else:

print(brandinput+" not available")

暫無
暫無

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

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