如何使用带有用户输入的for循环和if语句遍历python字典中的键/值?

2024-09-30 01:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一个问题,所以谢谢你花时间阅读。 在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”,然后要求颜色,如果用户键入“black”,它应该返回“产品可用”。如果他们选择“orange”,它应该说“不可用”

再次感谢您的阅读,希望一旦我学到更多,我可以是一个贡献和回答问题!你知道吗


Tags: 用户inputsearch键入产品颜色时间color
3条回答

我使用列表理解作为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")

您创建的“tshirts”是一个列表。这不是一本字典。试着用pandas创建一个字典或数据框,然后你就可以实现你想要的。你知道吗

你在正确的轨道上。只需将代码的后半部分更改为:

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

一旦您检查了品牌是否可用,您就可以检查if段,如果颜色可用,然后相应地打印。你知道吗

相关问题 更多 >

    热门问题