<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          非常有用的 Python 技巧

          共 3331字,需瀏覽 7分鐘

           ·

          2020-12-04 17:04

          點擊上方Python知識大全設(shè)為星標

          號外:
          本號免費提供 CSDN 資源下載,需要的伙伴公眾號后臺回復(fù)【CSDN】


          閱讀文本大概需要 5?分鐘


          近期精彩文章別這樣直接運行Python命令,否則電腦等于“裸奔”

          來源:蘇生不惑 ? 鏈接:

          https://mp.weixin.qq.com/s/ATvPzfLHwp0wEH5-tMW2cg

          函數(shù)連續(xù)調(diào)用


          def add(x):
          class AddNum(int):
          def __call__(self, x):
          return AddNum(self.numerator + x)
          return AddNum(x)

          print add(2)(3)(5)
          # 10
          print add(2)(3)(4)(5)(6)(7)
          # 27

          # javascript 版
          var add = function(x){
          var addNum = function(x){
          return add(addNum + x);
          };

          addNum.toString = function(){
          return x;
          }
          return addNum;
          }

          add(2)(3)(5)//10
          add(2)(3)(4)(5)(6)(7)//27

          默認值陷阱


          >>> def evil(v=[]):
          ... v.append(1)
          ... print v
          ...
          >>> evil()
          [1]

          >>> evil()
          [1, 1]

          讀寫csv文件


          import csv

          with open('data.csv', 'rb') as f:
          reader = csv.reader(f)
          for row in reader:
          print row

          # 向csv文件寫入
          import csv

          with open( 'data.csv', 'wb') as f:
          writer = csv.writer(f)
          writer.writerow(['name', 'address', 'age']) # 單行寫入
          data = [
          ( 'xiaoming ','china','10'),
          ( 'Lily', 'USA', '12')]

          writer.writerows(data) # 多行寫入

          數(shù)制轉(zhuǎn)換


          >>> int('1000', 2)
          8

          >>> int('A', 16)
          10

          格式化 json

          echo'{"k": "v"}' | python-m json.tool

          list 扁平化


          list_ = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
          [k for i in list_ for k in i] #[1, 2, 3, 4, 5, 6, 7, 8, 9]
          import numpy as np
          print np.r_[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

          import itertools
          print list(itertools.chain(*[[1, 2, 3], [4, 5, 6], [7, 8, 9]]))
          sum(list_, [])
          flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
          flatten(list_)

          list 合并


          >>> a = [1, 3, 5, 7, 9]
          >>> b = [2, 3, 4, 5, 6]
          >>> c = [5, 6, 7, 8, 9]
          >>> list(set().union(a, b, c))
          [1, 2, 3, 4, 5, 6, 7, 8, 9]

          出現(xiàn)次數(shù)最多的 2 個字母


          from collections import Counter
          c = Counter('hello world')
          print(c.most_common(2)) #[('l', 3), ('o', 2)]

          謹慎使用

          eval("__import__('os').system('rm -rf /')", {})

          置換矩陣


          matrix = [[1, 2, 3],[4, 5, 6]]
          res = zip( *matrix ) # res = [(1, 4), (2, 5), (3, 6)]

          列表推導(dǎo)


          [item**2 for item in lst if item % 2]
          map(lambda item: item ** 2, filter(lambda item: item % 2, lst))
          >>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
          ['1', '2', '3', '4', '5', '6', '7', '8', '9']

          排列組合


          >>> for p in itertools.permutations([1, 2, 3, 4]):
          ... print ''.join(str(x) for x in p)
          ...
          1234
          1243
          1324
          1342
          1423
          1432
          2134
          2143
          2314
          2341
          2413
          2431
          3124
          3142
          3214
          3241
          3412
          3421
          4123
          4132
          4213
          4231
          4312
          4321

          >>> for c in itertools.combinations([1, 2, 3, 4, 5], 3):
          ... print ''.join(str(x) for x in c)
          ...
          123
          124
          125
          134
          135
          145
          234
          235
          245
          345
          >>> for c in itertools.combinations_with_replacement([1, 2, 3], 2):
          ... print ''.join(str(x) for x in c)
          ...
          11
          12
          13
          22
          23
          33
          >>> for p in itertools.product([1, 2, 3], [4, 5]):
          (1, 4)
          (1, 5)
          (2, 4)
          (2, 5)
          (3, 4)
          (3, 5)

          默認字典


          >>> m = dict()
          >>> m['a']
          Traceback (most recent call last):
          File "", line 1, in
          KeyError: 'a'
          >>>
          >>> m = collections.defaultdict(int)
          >>> m['a']
          0
          >>> m['b']
          0
          >>> m = collections.defaultdict(str)
          >>> m['a']
          ''
          >>> m['b'] += 'a'
          >>> m['b']
          'a'
          >>> m = collections.defaultdict(lambda: '[default value]')
          >>> m['a']
          '[default value]'
          >>> m['b']
          '[default value]'

          反轉(zhuǎn)字典


          >>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
          >>> m
          {'d': 4, 'a': 1, 'b': 2, 'c': 3}
          >>> {v: k for k, v in m.items()}
          {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

          -END-
          推薦閱讀
          微信第 1 行代碼曝光!
          Python 下載的 11 種姿勢,一種比一種高級!

          關(guān)注「Python 知識大全」,做全棧開發(fā)工程師
          歲月有你 惜惜相處

          回復(fù) 【資料】獲取高質(zhì)量學(xué)習(xí)資料


          得本文對你有幫助?請分享給更多人
          點「在看」的人都變好看了哦
          瀏覽 26
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  午夜免费视频 | 日本1234区在线观看 | 欧美一级黄色片 | 国产黄色在线免费观看 | 免费一区二区三区 |