如何检查我想要的整数是否在我的值中(如果 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
我正在尝试 运行 这个测试代码:
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