簡體   English   中英

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

[英]How to check if a list contains a string

我需要遍歷一個列表並檢查該值是字符串還是整數。 在 python 中有什么簡單的方法可以做到這一點嗎?

例如:

[1,2,3]會是真的。

["a",2,3]將是錯誤的。

您可以使用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

isinstance也可以在調用all時使用:

>>> 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

您可以組合使用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()一旦知道結果也會短路,請在此處查看更多信息:

假設您的意思是您需要檢查列表的所有值,並且只有當它們都是整數時,該函數才會返回 True,這就是我的做法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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