如何在Python中找到与条件匹配的元素?

我有 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 中做到这一点?


慕的地6264312
浏览 209回答 3
3回答

鸿蒙传说

尝试使用pandas。更具体地说,熊猫系列import pandas as pdnumbers = {'a':2,'b':4,'c':1,'d':3}numseries = pd.Series(numbers)boolseries = numseries == 1print(list(numseries.index[boolseries]))输出:['c']对于如此少量的数据来说可能有点矫枉过正,但是如果您发现自己需要使用更大的数据集来执行此操作,则非常有用。它还处理满足条件的元素不止一个的情况。

SMILET

假设你看字典   d={'a':2,'b':3,'c':1,'d':1}怎么样:   for k in d.keys():      if d[k]==1:         print(k)应该打印“c”和“d”

红颜莎娜

简单的方法是测试每个变量:a = 3b = 4c = 2d = 1x = 1if a == x:    print('a')elif b == x:    print('b')elif c == x:    print('c')elif d == x:    print('d')只要变量的数量相当少,就可以做到这一点。如果这是您经常需要做的事情,我建议您改用不同的数据结构(例如 a dict):my_dict = {'a': 3, 'b': 4, 'c': 2, 'd': 1}x = 1matching_elements = [k for k in my_dict if my_dict[k] == x]print(matching_elements[0])如果多个变量(或者,在这种dict情况下,键)具有相同的值,第一个方法将打印第一次出现,而第二个方法可能会或可能不会返回第一个取决于天堂的对齐方式,因为dicts 没有被排序(它将返回虽然只有一个)。如果您想打印所有具有该值的变量,您可以将所有变量替换为elif,if或者,在第二种情况下,print(matching_elements).hacky方式(会回来咬你)是这样的:itervar = None  # If this does not exist the following will crashfor itervar in locals():    if locals()[itervar] == x:        print(itervar)这将打印所有与 x 具有相同值的变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python