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