我有4个元素a,b,c,d,但我不知道a,b,c,d的值。但是我知道a,b,c,d可以具有的值在(1,4)范围内。更具体地说,a可以是1或2或3或4。b,c,d同样适用。
我想检查其中的哪一个(a,b,c,d)的值为1并显示该元素。
例如,如果c = 1,则我希望显示c。
如何在Python中执行此操作?
答案 0 :(得分:0)
假设您看字典
d={'a':2,'b':3,'c':1,'d':1}
怎么样:
for k in d.keys():
if d[k]==1:
print(k)
应打印“ c”和“ d”
答案 1 :(得分:0)
简单的方法是测试每个变量:
a = 3
b = 4
c = 2
d = 1
x = 1
if a == x:
print('a')
elif b == x:
print('b')
elif c == x:
print('c')
elif d == x:
print('d')
只要变量的数量相当小,就可以执行此操作。如果您经常需要执行此操作,建议您改用其他数据结构(例如dict
)
my_dict = {'a': 3, 'b': 4, 'c': 2, 'd': 1}
x = 1
matching_elements = [k for k in my_dict if my_dict[k] == x]
print(matching_elements[0])
如果多个变量(或在dict
中为键)具有相同的值,则第一种方法将打印第一个方法,而第二个方法可能会或可能不会返回第一个方法,具体取决于天堂的对齐方式,具体取决于dict
个未排序(尽管只会返回一个)。
如果要打印具有该值的所有变量,则可以用elif
替换所有if
,或者在第二种情况下用print(matching_elements)
替换。
这种骇人听闻的方式(会回来咬你)是这样的:
itervar = None # If this does not exist the following will crash
for itervar in locals():
if locals()[itervar] == x:
print(itervar)
,这将打印所有与x值相同的变量。
答案 2 :(得分:0)