簡體   English   中英

如何編寫一個只接受內部帶有 int 或 float 類型的列表的 Python 函數?

[英]How can I write a Python function that will only accept a list with int or float type inside?

我需要編寫一個函數,該函數將采用 int 或 float 類型的列表。 如果有嵌套列表,函數必須返回“No”,如果只有 float 或 int 類型,函數必須返回“Yes”。 這是我的代碼

def take_list(lst):
    for i in lst:
        if isinstance(i, list) is True:
            return "No"
        elif isinstance(i, int) or isinstance(i, float):
            return "Yes"


print(take_list([1, 2, [3, 2]]))
print(take_list([1, 2, 3, 2]))

但這里的答案總是“是”。 我嘗試了“type”而不是“isinstance”,所以它不起作用

使用type怎么樣?

def take_list(lst):
    # if all(isinstance(item, (int, float)) for item in lst): # another way
    if all(type(item).__name__ in ['int', 'float'] for item in lst):
        return "Yes"
    else:
        return "No"


print(take_list([1, 2, [3, 2]]))     # No
print(take_list([1, 2, 3, 2, 1.2]))  # Yes

typeintfloat類中的函數,使用___name___獲取類名稱。

暫無
暫無

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

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