gpt4 book ai didi

Python 列出不同类型的成员资格

转载 作者:行者123 更新时间:2023-12-01 00:46:04 24 4
gpt4 key购买 nike

我有一个各种类型的 Python 文字列表,例如:

literals = [1, 2, 'a', False]

我所说的“字面量”是指任何可能是 ast.literal_eval 输出的 Python 对象。 。我想编写一个函数 literalInList 来检查其他 Python 文字 x 是否在 literals 列表中:

x = True
if literalInList(x, literals): # Should be False.
print('The literal is in the list.')

请注意,我不能只在文字中执行 x,因为 ==in 运算符不会检查文字类型:

>>> True == 1
True
>>> False == 0
True
>>> 1 == 1.0
True
>>> True in [1, 2, 'a', False]
True

所以,我最好的尝试如下:

def literalInList(x, literals):
return any(x is lit for lit in literals)

对于一项听起来简单的任务来说,这无疑是相当丑陋的。有没有更优雅、更高效、更Pythonic的方式?

最佳答案

以下怎么样:

def literalInList(x, literals):
def eq_x(y):
return x == y and type(x) is type(y)
return any(eq_x(y) for y in literals)

literals = [1, 2, 'a', False]
print(literalInList(True, literals)) # False
print(literalInList(False, literals)) # True
print(literalInList(1, literals)) # True
print(literalInList(1.0, literals)) # False

关于Python 列出不同类型的成员资格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56976737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com