【问题标题】:Matching a variable with members of a list in Python?将变量与Python中的列表成员匹配?
【发布时间】:2011-05-22 09:53:54
【问题描述】:

我想在一行上检查变量的值是否与给定列表的任何成员的值匹配 (==)

【问题讨论】:

    标签: python list variables match


    【解决方案1】:

    使用in:

    > lst = [1,'r']
    > v = 1
    > v in lst
    True
    

    【讨论】:

    • 咳嗽遮蔽list是不好的咳嗽
    • 是的,只是为了清楚。
    【解决方案2】:

    编辑:我会留下这个答案,因为生成器表达式是有用的野兽(尤其是与 anyall 一起)但如果您只是测试列表中的成员资格,那么您应该使用in


    any(var == i for i in my_list)
    

    解释:

    any 是一个函数,它接受一个可迭代对象并在该可迭代对象的任何元素为 True 时返回 True。

    列表推导[x == i for i in my_list] 是一个布尔值列表,将x 依次与列表中的每个值进行比较。如果其中任何一个为真,那么x == i。因此,如果您在该列表中致电any,您将得到您想要的答案。

    如果您在编写列表推导时将[] 更改为(),您将获得一个生成器对象,它一次生成一个值,而不是在内存中构造它们。如果您将生成器表达式作为唯一参数传递给函数,则可以省略额外的括号集,以保留上面的简洁语法。

    还有一个函数all

    【讨论】:

    • 最好用var in my_list
    猜你喜欢
    • 2016-09-12
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2022-11-18
    相关资源
    最近更新 更多