为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2021-11-23 20:10:48
我有 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 中做到这一点?
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

尝试使用pandas。更具体地说,熊猫系列


import pandas as pd


numbers = {'a':2,'b':4,'c':1,'d':3}


numseries = pd.Series(numbers)


boolseries = numseries == 1


print(list(numseries.index[boolseries]))

输出:['c']


对于如此少量的数据来说可能有点矫枉过正,但是如果您发现自己需要使用更大的数据集来执行此操作,则非常有用。它还处理满足条件的元素不止一个的情况。


查看完整回答
反对 回复 2021-11-23
?
SMILET

TA贡献1796条经验 获得超4个赞

假设你看字典


   d={'a':2,'b':3,'c':1,'d':1}

怎么样:


   for k in d.keys():

      if d[k]==1:

         print(k)

应该打印“c”和“d”


查看完整回答
反对 回复 2021-11-23
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

简单的方法是测试每个变量:


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')

只要变量的数量相当少,就可以做到这一点。如果这是您经常需要做的事情,我建议您改用不同的数据结构(例如 a 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情况下,键)具有相同的值,第一个方法将打印第一次出现,而第二个方法可能会或可能不会返回第一个取决于天堂的对齐方式,因为dicts 没有被排序(它将返回虽然只有一个)。如果您想打印所有具有该值的变量,您可以将所有变量替换为elif,if或者,在第二种情况下,print(matching_elements).


hacky方式(会回来咬你)是这样的:


itervar = None  # If this does not exist the following will crash

for itervar in locals():

    if locals()[itervar] == x:

        print(itervar)

这将打印所有与 x 具有相同值的变量。


查看完整回答
反对 回复 2021-11-23
  • 3 回答
  • 0 关注
  • 208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信