[英]How to check if all items in list are string
如果我在 python 中有一個列表,是否有一個 function 告訴我列表中的所有項目是否都是字符串?
例如: ["one", "two", 3]
將返回False
,而["one", "two", "three"]
將返回True
。
只需使用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
回答@TekhenyGhemor的后續問題:有沒有辦法檢查列表中是否沒有數字字符串。 例如:[“one”,“two”,“3”]將返回false
是。 您可以將字符串轉換為數字,並確保它引發異常:
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)
檢查:
>>> valid_list(["one", "two", "3"])
False
>>> valid_list(["one", "two", "3a"])
True
>>> valid_list(["one", "two", 0])
False
在[5]中:valid_list([“one”,“two”,“three”])Out [5]:True
另一種方法是使用map()
function:
>>> all(map(lambda x: isinstance(x, str), ['one', 'two', 3]))
False
>>> all(map(lambda x: isinstance(x, str), ['one', 'two', 'three']))
True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.