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

问题描述 投票:0回答:2

我正在尝试运行此测试代码:

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

test(sdk=1)

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

python key kwargs
2个回答
1
投票

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

if 1 in value期望value是可迭代的(例如,数组或dict),如果value中包含1,则返回True,否则返回False。

如果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

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)

OUTPUT:

HelloWorld
© www.soinside.com 2019 - 2024. All rights reserved.