如何检查我想要的整数是否在我的值中(如果 int 不可迭代)

how to check if integer which I want inside my value(if int is not iterable)

我正在尝试 运行 这个测试代码:

def test(**kwargs):
    for key, value in kwargs.items():
        if 'sdk' in key:
            print value
            if 1 in value:
                print 'HelloWorld'    

test(sdk=1)

但是它当然会给我错误,因为整数是不可迭代的,所以你们如何检查你想要的整数是否是内部值?谢谢

使用 and 并将 '1'str 类型的 value 进行比较:

def test(**kwargs):
    for key, value in kwargs.items():
        if 'sdk' in key and '1' in str(value): # True in case of test(sdk=19)
                print('HelloWorld')

test(sdk=1)

如果您不想将 1 转换为 str '1',您可以使用 ==

if 'sdk' in key and 1 == value: # False in case of test(sdk=19)

输出:

HelloWorld

您实际应该使用的表达式是 if value == 1

if 1 in value 期望 value 是可迭代的(例如,数组或字典)并且 returns 如果 1 包含在 value 中则为真,否则为假.

如果 value 不是可迭代的,您将得到一个异常:

>>> arr = [1, 2, 3]
>>> 1 in arr
True
>>> 4 in arr
False
>>> not_arr = 1
>>> 1 in not_arr
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument of type 'int' is not iterable
>>> not_arr == 1
True
>>> not_arr == 2
False