我要求用户从键盘输入一个数字。例如,用户输入190,我如何将该用户输入190与具有相同值的字典的值进行比较?它是平等的还是不平等的?
这是我的代码:
my_dict = {'apple': [900, 190], 'orange': [1300, 90], 'pineapple': [550, 13], 'carrot': [600, 60], 'cucumber': [900, 30], 'egg plant': [1100, 20], 'zucchini': [1300, 10], 'garlic': [300, 70]}
for key, value in my_dict:
usernumber = input('Input your number: ')
if usernumber == value:
print("Equal")
else:
print("Not equal")
例如,如果用户输入了数字190,我如何检查这个值是否在字典中
最好的方法是用my_dict.values()
获取my_dict
中的所有值,然后将其展开为所有值的一个列表(有关如何展开列表的各种方法,请参阅此问题(。一旦字典中有了所有值的列表,就可以使用简单的in
比较来检查用户的输入是否在该列表中。
以下是我所做的:
my_dict = {'apple': [900, 190], 'orange': [1300, 90], 'pineapple': [550, 13], 'carrot': [600, 60], 'cucumber': [900, 30], 'egg plant': [1100, 20], 'zucchini': [1300, 10], 'garlic': [300, 70]}
usernumber = int(input('Input your number: '))
if usernumber in [num for elem in my_dict.values() for num in elem]:
print("Equal")
else:
print("Not equal")
与其他答案不同,这将只输出一行,而不是多行。
您的代码是正确的,但由于您的值是列表,因此您应该执行in
检查,而不是==
my_dict = {'apple': [900, 190], 'orange': [1300, 90], 'pineapple': [550, 13], 'carrot': [600, 60], 'cucumber': [900, 30], 'egg plant': [1100, 20], 'zucchini': [1300, 10], 'garlic': [300, 70]}
usernumber = int(input('Input your number: ')) # Take input before and convert to int as well
if any(usernumber in (k:=val) for val in my_dict.values()):
print("equal", k.index(usernumber))
else:
print("unequal")
# output: equal 1