一些小方法 持續更新

2021-10-03 05:23:00 字數 3110 閱讀 7295

我在寫指令碼的時候,會有些自己常用的方法,這兒做個分享;

個人部落格:

def

date_list

(self, start_date, end_date)

:"""傳開始、結束日期,返回兩者之間所有日期的list

:param start_date:開始日期

:param end_date: 結束日期

:return: 2者之間所有日期的list

"""s_d = datetime.datetime.strptime(start_date,

'%y-%m-%d'

) e_d = datetime.datetime.strptime(end_date,

'%y-%m-%d'

) list_end =

while s_d <= e_d:

'%y-%m-%d'))

s_d += datetime.timedelta(days=1)

return list_end

def

delete_repeat

(self, data_list)

:"""傳如某個list,返回 清除完重複元素後的此list

:param data_list: 某個list

:return: 刪除重複元素後的新list

"""temp = data_list[:]

data_list.clear(

)for e in temp:

if e not

in data_list:

return data_list

def

list_ele_compare

(self, list_a, list_b):if

len(list_a)

==len

(list_b)

:for a in list_a:

if a in list_b:

list_b.remove(a)

else

: log.info(

'當前元素在list_a, 不在list_b,fail; {}'

.format

(a))

raise assertionerror

assert

len(list_b)==0

log.info(

'2個list 對比每乙個元素,通過校驗'

)else

: log.info(

'長度不相同 {} - {} '

.format

(len

(list_a)

,len

(list_b)))

raise assertionerror

這兒有個小坑,如果比較後,還想對list_b進行操作,傳參的時候最好是list_b[:]

然後這兒又涉及到列表的淺拷貝 與 深拷貝,但對我這兒的**【remove,非 修改子物件】來說,沒有影響。

def

month_first_last

(self, month)

:"""傳某月,返回月初、月末

:param month: 月份 2020-02

:return: 第一天、最後一天

"""day_end =

str(calendar.monthrange(

int(month[0:

4]),

int(month[5:

7]))

[1])

return

''.join(

[month,

'-01'])

,''.join(

[month,

'-', day_end]

)

def

month_before_after

(self, b_a, test_month, months)

: test = datetime.datetime.strptime(test_month,

'%y-%m'

)if b_a ==

'before'

: new_month = test - relativedelta(months=months)

else

: new_month = test + relativedelta(months=months)

return new_month.date(

).strftime(

'%y-%m'

)

def

month_list

(self, start_month, end_month)

: end_day =

str(calendar.monthrange(

int(end_month[0:

4]),

int(end_month[5:

7]))

[1])

end_day =

''.join(

[end_month,

'-', end_day]

) end = datetime.datetime.strptime(end_day,

'%y-%m-%d'

) s_m = datetime.datetime.strptime(start_month,

'%y-%m'

) end_list =

list()

while s_m <= end:

'%y-%m'))

s_m += datetime.timedelta(days=28)

end_list = self.delete_repeat(end_list)

return end_list

【待更新】

個人部落格

一些小方法

1 將六位的顏色碼轉換成紅綠藍三色 uicolor getcolor nsstring hexcolor 2 計算根據字串長度計算空間的size nsstring title 苦澀奉公克己惡毒啦沒考慮到呢離開電腦礦務局恩看到今年份渴望能看見你哭呢 cgsize sizeh title boundin...

UItableView一些小方法

1 uitableview設定偏移量 通過設定tableview的偏移量,讓列表預設滾動到某個位置,內涵段子裡面的效果 mytableview setcontentoffset cgpointmake 0,100 animated yes 有時候只需要重新整理某行的cell的資料,完全沒必要呼叫 t...

一些ArrayList的一些小方法

1 arraylist的一些小方法 加入某本圖書 list.add bk5 檢視是否包含某本圖書 boolean a list.contains bk1 system.out.println a 刪除某本圖書 list.remove bk5 根據圖書名檢視,刪除該圖書 集合的下角標是從0開始的 fo...