簡體   English   中英

創建一個 function 以循環遍歷帶有日期的元組列表

[英]Creating a function to loop over a list of Tuples with dates

大家好,我需要一些幫助。 我有一個元組列表,其中每個元組包含 3 個元素。

  1. 格式為 2020 的年份。
  2. 1-12 月 integer
  3. 任何隨機 integer 值

我想創建一個 function 來循環遍歷這個元組列表,以便在每個元組中我可以計算月份與給定 integer 之間的差異,然后根據余數找出新月份。 例如,2020 年 5 月的元組將是(2020,5,3) ,因此結果將是5-3=2 ,這意味着 2020 年 2 月。此外,如果結果為負數,則年份將從 2020 年減少到 2019 年,並且依此類推。 任何幫助,將不勝感激。

編輯 - 所以我使用以下答案之一中給出的邏輯創建了這個 function 但這並不是我想要的,

def subtract_months(input_list):

output_list = []

#TODO: implement your code here

for i in input_list:

    result = i[1]-i[2]

    if 12 >= result > 0:
        output_list.append((i[0],result))
    else:
        output_list.append((i[0]-1,12-abs(result)))

return output_list

如果我使用 [(2020,5,3)] 之類的輸入,則代碼可以正常工作並給出 (2020,2) 的 output 但如果我想提供 [(2020,5,20)] 之類的輸入,那么它只是循環一年而不是兩年。

你可以試試

ls = [(2020,5,3), (2020,5,14), (2020,6,1), (2020,7,18)]
[(i[0], i[1] - i[2], i[2]) if 12 >= i[1] - i[2] > 0 else (i[0] - 1, i[1], i[2])  for i in ls]

示例中的元組列表為[(2020,5,3), (2020,5,14), (2020,6,1), (2020,7,18)]
所以 output 是

[(2020, 2, 3), (2019, 5, 14), (2020, 5, 1), (2019, 7, 18)]

暫無
暫無

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

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