使用“in”运算符将字符串比较/转换为int

时间:2017-11-22 14:55:42

标签: python python-3.x for-in-loop

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

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

if category.id in context:

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

我不能使用int(context),因为context是一个列表并且会给出错误。

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

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

2 个答案:

答案 0 :(得分:3)

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

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

如果保证context是一个可以明智地转换为整数的字符串列表,这可能是最安全的路径。

答案 1 :(得分:2)

您可以随时将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