簡體   English   中英

if 和 elif 函數的 Python 列表推導式

[英]Python list comprehension for if and elif function

from datetime import date

a_dictionary = {"name" : "John", "age" : 35, "height" : 65}

dict_items = a_dictionary.items()


def month_selct(d):
    if date.today().month == 1:
        d = list(d)[:2]

    elif date.today().month == 2:
        d = list(d)[:2]

    elif date.today().month == 3:
        d = list(d)[:2]

month_selct(dict_items)

你能幫我減少這個代碼嗎? 我希望這個函數每個月都能使用,但它只是其中 3 個的一個例子

您可以使用字典在 python 中實現切換邏輯:

def month_selct(d):
    switch = {
        1 : list(d)[:2],
        2 : list(d)[:2],
        3 : list(d)[:2],
        11: list(d)[:2]
    }
    return switch[date.today().month]

print(month_selct(dict_items))

您可以使用 for 循環遍歷每個月並檢查那是您所在的月份,如下所示:

def month_select(d):
    for m in range(1, 13):
        if date.today().month == m:
            d = list(d)[:2]

編輯:您要求列表理解解決方案

d = [list(d)[:2] for m in range(1, 13) if date.today().month == m]

暫無
暫無

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

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