簡體   English   中英

如何檢查列表中的所有項目是否都是字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM