<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 內置模塊 [TOC] --- ## datetime ```python # 導入datetime模塊的datetime類 from datetime import datetime now = datetime.now() now # datetime.datetime(2018, 3, 30, 21, 2, 20, 167446) print(now) # 2018-03-30 21:02:20.167446 print(type(now)) # <class 'datetime.datetime'> # 用指定日期時間創建datetime dt = datetime(2015, 4, 19, 12, 20) print(dt) # 2015-04-19 12:20:00 # 轉換時間戳 dt = datetime(2018, 4, 19, 12, 20) dt.timestamp() # 1524111600.0 # timestamp轉換為datetime t=1524111600 print(datetime.fromtimestamp(t)) # 2018-04-19 12:20:00 # str轉換為datetime cday = datetime.strptime('2018-3-30 21:36:50', '%Y-%m-%d %H:%M:%S') print(cday) # 2018-03-30 21:36:50 # datetime轉換為str now = datetime.now() print(now.strftime('%Y-%m-%d %H:%M:%S')) # 2018-03-30 21:42:24 # 10小時后 from datetime import timedelta now = datetime.now() now + timedelta(hours=10) # datetime.datetime(2018, 3, 31, 7, 44, 11, 686375) # 1天前 now - timedelta(days=1) # 2天12小時以后 now + timedelta(days=2, hours=12) ``` ## collections collections內置了很多有用的集合類 ### namedtuple 語義化元祖(為tuple取名): namedtuple是一個函數,它用來創建一個自定義的tuple對象,并且規定了tuple元素的個數,并可以用屬性而不是索引來引用tuple的某個元素。 ```python from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) Point # <class '__main__.Point'> p = Point(1,2) p.x # 1 p.y # 2 isinstance(p,Point) # True isinstance(p,tuple) # True ``` ### deque 使用list存儲數據時,按索引訪問元素很快,但是插入和刪除元素就很慢了,因為list是線性存儲,數據量大的時候,插入和刪除效率很低。 deque是為了高效實現插入和刪除操作的雙向列表,適合用于隊列和棧: ```python from collections import deque q = deque(['a', 'b', 'c']) q.append('x') # pop() q.appendleft('y') #popleft() q # deque(['y', 'a', 'b', 'c', 'x']) ``` ### defaultdict dict的key不存在時提供默認值 ```python from collections import defaultdict dd = defaultdict(lambda: 'N/A') # 注意: 默認值是調用函數返回的 dd['key1'] = 'abc' dd['key1'] # key1存在 'abc' dd['key2'] # key2不存在,返回默認值 'N/A' # 但如果默認值是不需要函數處理之后的結果值,建議用dict ``` ### OrderedDict 使用dict時,Key是無序的。如果要保持Key的順序,可以用OrderedDict **注意:這里的順序是指插入的順序,而不是keys或value的大小順序** ```python od = OrderedDict([('b', 2), ('c', 3),('a', 1)]) od # OrderedDict([('b', 2), ('c', 3), ('a', 1)]) list(od.keys()) # ['b', 'c', 'a'] ``` > 實現一個FIFO(先進先出)的dict類,當容量超出限制時,先刪除最早添加的Key: ```python class LastUpdatedOrderedDict(OrderedDict): def __init__(self, capacity): super().__init__() self._capacity = capacity def __setitem__(self, key, value): containsKey = 1 if key in self else 0 if len(self) - containsKey >= self._capacity: last = self.popitem(last=False) print('remove:', last) if containsKey: del self[key] print('set:', (key, value)) else: print('add:', (key, value)) OrderedDict.__setitem__(self, key, value) d = LastUpdatedOrderedDict(2); d[0]=1 # add: (0, 1) d[0]=0 # set: (0, 0) d[1]=0 # add: (1, 0) d[2]=0 # remove: (0, 0) add: (2, 0) ``` ### counter 計數器 ```python from collections import Counter c = Counter() for ch in 'programming': c[ch] = c[ch] + 1 c # Counter({'r': 2, 'g': 2, 'm': 2, 'p': 1, 'o': 1, 'a': 1, 'i': 1, 'n': 1}) ``` ## base64 ```python import base64 base64.b64encode(b'binary\x00string') # b'YmluYXJ5AHN0cmluZw==' base64.b64decode(b'YmluYXJ5AHN0cmluZw==') # b'binary\x00string' ``` ## hashlib 提供常見的摘要算法 ```python import hashlib md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?'.encode('utf-8')) print(md5.hexdigest()) # d26a53750bc40b38b65a520292f69306 # 可以分塊多次調用update() md5.update('how to use md5 in '.encode('utf-8')) md5.update('python hashlib?'.encode('utf-8')) # 加鹽算法 import hmac message = b'Hello, world!' key = b'secret' h = hmac.new(key, message, digestmod='MD5') h.hexdigest() # fa4ee7d173f2d97ee79022d1a7355bcf ``` ## itertools ```python import itertools # 生成一個無限迭代器,從1開始 natuals = itertools.count(1) # 無限循環ABC cs = itertools.cycle('ABC') # 無限循環元素A,第二參數可限制次數 ns = itertools.repeat('A', 3) ``` ### takewhile 通過takewhile()等函數根據條件判斷來截取出一個有限的序列 ```python natuals = itertools.count(1) ns = itertools.takewhile(lambda x: x <= 10, natuals) list(ns) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ``` ### chain 串聯迭代對象 ```python for n in itertools.chain('xyz','abc'): print(n) # x y z a b c ``` ### groupby ```python # lamba: 上個返回的值和這個返回的值相等,就是相同分組的 for key, group in itertools.groupby('AaaBBbcCAAa', lambda c: c.upper()): print(key, list(group)) ``` ## sys ## contextlib 處理上下文關系 ## urllib urllib提供了一系列用于操作URL的功能,但我們一般不用
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看