如何检查列表是否包含字符串

时间:2016-10-01 23:40:20

标签: python list

我需要遍历列表并检查值是字符串还是int。在python中有没有简单的方法呢?

例如:

[1,2,3]是真的。

["a",2,3]将是错误的。

3 个答案:

答案 0 :(得分:6)

您可以使用all执行此操作,这会在满足错误条件时短路。

>>> my_list = [1, 2, 3]
>>> all(type(d) == int for d in my_list)
True

>>> my_list = ['1', 2, 3]
>>> all(type(d) == int for d in my_list)
False
在调用all时也可以使用

isinstance

>>> my_list = [1, 2, 3]
>>> all(isinstance(d, int) for d in my_list)
True

>>> my_list = ['1', 2, 3]
>>> all(isinstance(d, int) for d in my_list)
False

答案 1 :(得分:3)

您可以结合使用any()isinstance()

In [1]: def contains_string(l):
    ...:     return any(isinstance(item, basestring) for item in l)
    ...: 

In [2]: contains_string([1,2,3])
Out[2]: False

In [3]: contains_string(['a',2,3])
Out[3]: True

basestring处理" unicode"和" str"字符串类型:

请注意any()一旦知道结果就短路,请点击此处了解更多信息:

答案 2 :(得分:0)

假设你的意思是你需要检查列表中的所有值,并且只有当它们都是整数时,函数才会返回True,这就是我的方法:

def test(list):
    result=True
    for elem in list:
        if type(elem)!=int:
            result=False
    return result
相关问题