一些小方法【持續更新】

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

獲取某一時間段內所有日期的list

    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:
            list_end.append(s_d.strftime('%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:
                data_list.append(e)

        return data_list

比較2個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[:];

每月的第一天、最後一天

    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])

【待更新】

交流技術 歡迎+ QQ\微信 153132336 zy
個人博客 https://blog.csdn.net/zyooooxie

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章