列**式:
result1 =[(
"2020-01",21
,12,12
,23,34
),("2020-02",23
,34,45
,56,67
),("2020-05",1
,2,3
,4,4
)]result2 =[(
"2020-01",43
,45,56
,23,34
),("2020-02",23
,12,23
,34,45
),("2020-05",12
,21,31
,41,14
),("2020-06",11
,21,31
,14,14
)]orresult1 =[(
"2020-01",21
,12,12
,23,34
),("2020-02",23
,34,45
,56,67
),("2020-05",1
,2,3
,4,4
)]result2 =[(
"2020-01",43
,45,56
,23,34
),("2020-02",23
,12,23
,34,45
),("2020-05",12
,21,31
,41,14
)]
需要求result2 和result1列表各值之差。
背景:result1的長度小於等於result2,且result1中月份一定會在result2**現,但result2中的月份不一定存在於result1中。
一開始的思路是判斷二者長度是否相同,如果相同,代表二者出現的年月相同,不同則代表result2的值多了一些月份。
所以寫了兩個方法,分別判斷二者長度相同和不同的情況。
def
get_result_with_same_length
(result1, result2)
:"""二者長度相同時"""
result_list =
result_all =
zip(result1, result2)
for result_1, result_2 in result_all:
i =0 list_one =
)while i <
len(result_1)-1
: i +=
1- result_1[i]
) list_one =
tuple
(list_one)
return result_list
defget_result_with_different_length
(result1, result2)
:"""二者長度不相同時"""
result_both =
result_not_senguo_in =
result_all = result2
result_list =
date_list =
for result_1 in result1:0]
)for date in date_list:
for value in result2:
if date in value[0]
: result_all.remove(value)
result_list_same = get_result_with_same_length(result1, result_both)
result_list.extend(result_list_same)
result_list.extend(result_all)
return result_list
if length1 == length2:
result_list = get_result_with_same_length(result1,result2)
if length1 != length2:
result_list = get_result_with_different_length(result1,result2)
但是這樣寫**過於冗長,而且非常不友好,看起來也不簡潔。
後來決定將其轉成字典,通過字典解決。
map_result_1 =
map_result_2 =
for k, v in map_result_1.items():
if k in map_result_2:
for i in
range
(len
(v))
: map_result_2[k]
[i]-= v[i]
result_list =
for k, v in map_result_2.items():
v.insert(
0, k)
這裡主要是學習字典的使用。 CTime之間求差值
ctimespan long ldays,int nhours,int nmins,int nsecs 求差值 ctime t1 ctime getcurrenttime ctime t2 2018,8,10,0,0,0 ctimespan timespan t1 t2 int nseconds t...
python刪除列表元素 Python列表元素分組
比如列表 0,0,0,1,1,2,3,3,3,2,3,3,0,0 分割成 0,0,0 1,1 2 3,3,3 2 3,3 0,0 如何解決這樣的問題呢?1 首先說明,如果這樣的題目都不能寫出 原因在基本的迴圈判斷沒有搞清楚。2 黃哥在如何訓練自己的程式設計思路 文章所說的,做習題,要像開發專案的流程...
python列表學習 python列表學習整理
list1 列表 是一種有序的集合,可以隨時新增和刪除其中的元素。list1 lily lucy peter abel 列印列表 print list1 遍歷列表 end 迴圈中不換行print x,end for x in list1 print x 列表個數 print len list1 列表...