如何检查列表中的所有项是否为字符串

时间:2016-05-21 00:49:00

标签: python python-3.x

如果我在python中有一个列表,是否有一个函数告诉我列表中的所有项是否都是字符串?

例如: ["one", "two", 3]将返回False["one", "two", "three"]将返回True

2 个答案:

答案 0 :(得分:13)

只需使用all()并使用isinstance()检查类型。

>>> l = ["one", "two", 3]
>>> all(isinstance(item, str) for item in l)
False
>>> l = ["one", "two", '3']
>>> all(isinstance(item, str) for item in l)
True

答案 1 :(得分:1)

回答@ TekhenyGhemor的后续问题:有没有办法检查列表中是否没有数字字符串。例如:[“one”,“two”,“3”]将返回false

是。您可以将字符串转换为数字,并确保它引发异常:

mongoDB

检查:

def isfloatstr(x):
    try: 
        float(x)
        return True
    except ValueError:
        return False

def valid_list(L):
    return all((isinstance(el, str) and not isfloatstr(el)) for el in L)

在[5]中:valid_list([“one”,“two”,“three”]) 出[5]:真实