如果我在python中有一个列表,是否有一个函数告诉我列表中的所有项是否都是字符串?
例如:
["one", "two", 3]
将返回False
,["one", "two", "three"]
将返回True
。
答案 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]:真实