使用 "in" 运算符 compare/convert 将字符串转换为 int

Using "in" operator compare/convert a string to an int

我需要查找是否在字符串列表中找到整数。

上下文 = ['4', '6', '78']

if category.id in context:

上面的代码不起作用,因为我将 int(category id) 与字符串进行比较。

我不能使用 int(context),因为 context 是一个列表,会报错。

我可以将category.id转换成字符串,但是会出现不好的情况吗?

使用 in 运算符可以将字符串转换为 int,或者我需要使用 for loop ?

您始终可以将 ID 更新为字符串,如下所示:

class cat():
    def __init__(self, id):
        self.id = id

category = cat(4)

context = ['4', '6', '78']

if str(category.id) in context:
    print('True')

#output
True

您还可以考虑使用列表理解将 context 转换为整数列表。

context_ints = [int(i) for i in context]
if category.id in context_ints:
    ... do stuff ...

如果保证 context 是一个可以合理地转换为整数的字符串列表,那么这对您来说可能是最安全的途径。