所以可以說我有兩個串列
list1 = [1, "x", 3, "y", 5]
list2 = ["x", "y", "x", "y"]
我想要一個函式,它為 list1 回傳一個布林值 True,因為它包含一些整數,而 list2 則回傳一個布林值 False,因為它只包含字串。
uj5u.com熱心網友回復:
def is_not_all_strings(lst):
return not all(isinstance(k,str) for k in lst)
或者,根據需要:
def contains_an_integer(lst):
return any(isinstance(k,int) for k in lst)
uj5u.com熱心網友回復:
如果要捕獲各種數值,而不僅僅是整數,可以使用numbers.Number,如下所示:
import numbers
def has_numbers(items):
return any(isinstance(item, numbers.Number) for item in items)
這不僅會檢測整數,還會檢測浮點數、小數、分數等。
uj5u.com熱心網友回復:
def contains_num(l):
return any(list(map(lambda x:isinstance(x,int),l)))
uj5u.com熱心網友回復:
使用for回圈。這樣,您可以True在找到一個整數后回傳并避免遍歷其余元素。
def foo(lst):
for x in lst:
if isinstance(x, int):
return True
return False
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/344637.html
