亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python-cookbook

系統(tǒng) 1671 0

PYTHON-COOKBOOK

文章目錄

  • PYTHON-COOKBOOK
    • 一:數(shù)據(jù)結(jié)構(gòu)和算法
      • 1、Heapq
        • 取出最大或最小的幾個(gè)元素
        • 優(yōu)先級(jí)隊(duì)列
      • 2、字典
        • 多值字典
        • 字典排序
        • 字典列表排序
        • 字典共同點(diǎn)和不同點(diǎn)
      • 3、collections
        • 保留最后幾個(gè)元素
        • 頻率統(tǒng)計(jì)
        • 命名元組
        • 字典(映射)聯(lián)合查找
      • 4、其他
        • 解壓賦值
        • 去重且保持順序
        • 切片
        • 分組

一:數(shù)據(jù)結(jié)構(gòu)和算法

三個(gè)基本的寫(xiě)法:

  1. 列表生成式
  2. 字典生成式
  3. 迭代器生成式

1、Heapq

取出最大或最小的幾個(gè)元素

            
              
                # 最大或者最小的n個(gè)元素
              
              
                import
              
               random

              
                from
              
               heapq 
              
                import
              
               nsmallest
              
                ,
              
              nlargest

tt 
              
                =
              
              
                [
              
              random
              
                .
              
              randint
              
                (
              
              
                1
              
              
                ,
              
              
                10000
              
              
                )
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                1000
              
              
                )
              
              
                ]
              
              
                # 取出的元素較少
              
              
                %
              
              time nsmallest
              
                (
              
              
                7
              
              
                ,
              
              tt
              
                )
              
              
                %
              
              time nlargest
              
                (
              
              
                7
              
              
                ,
              
              tt
              
                )
              
              
                # 取出的元素很多
              
              
                %
              
              time 
              
                sorted
              
              
                (
              
              tt
              
                )
              
              
                [
              
              
                :
              
              
                7
              
              
                ]
              
              
                %
              
              time 
              
                sorted
              
              
                (
              
              tt
              
                )
              
              
                [
              
              
                -
              
              
                7
              
              
                :
              
              
                ]
              
              
                # 只取出最大的或者最小的
              
              
                %
              
              time 
              
                min
              
              
                (
              
              tt
              
                )
              
              
                %
              
              time 
              
                max
              
              
                (
              
              tt
              
                )
              
            
          

優(yōu)先級(jí)隊(duì)列

            
              
                import
              
               heapq


              
                class
              
              
                PriorityQueue
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                )
              
              
                :
              
              
        self
              
                .
              
              _queue 
              
                =
              
              
                [
              
              
                ]
              
              
                def
              
              
                push
              
              
                (
              
              self
              
                ,
              
              item
              
                ,
              
              priority
              
                )
              
              
                :
              
              
        heapq
              
                .
              
              heappush
              
                (
              
              self
              
                .
              
              _queue
              
                ,
              
              
                (
              
              priority
              
                ,
              
              item
              
                )
              
              
                )
              
              
                def
              
              
                pop
              
              
                (
              
              self
              
                )
              
              
                :
              
              
        r 
              
                =
              
               heapq
              
                .
              
              heappop
              
                (
              
              self
              
                .
              
              _queue
              
                )
              
              
                return
              
               r 

pp 
              
                =
              
               PriorityQueue
              
                (
              
              
                )
              
              
pp
              
                .
              
              push
              
                (
              
              
                'a'
              
              
                ,
              
              
                3
              
              
                )
              
              
pp
              
                .
              
              push
              
                (
              
              
                'b'
              
              
                ,
              
              
                9
              
              
                )
              
              
pp
              
                .
              
              push
              
                (
              
              
                'c'
              
              
                ,
              
              
                6
              
              
                )
              
              
pp
              
                .
              
              push
              
                (
              
              
                'd'
              
              
                ,
              
              
                3
              
              
                )
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                4
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              pp
              
                .
              
              pop
              
                (
              
              
                )
              
              
                )
              
            
          

2、字典

多值字典

            
              
                from
              
               collections 
              
                import
              
               defaultdict

d 
              
                =
              
               defaultdict
              
                (
              
              
                list
              
              
                )
              
              
d
              
                [
              
              
                'a'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                1
              
              
                )
              
              
d
              
                [
              
              
                'a'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                2
              
              
                )
              
              
d
              
                [
              
              
                'b'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                4
              
              
                )
              
              
                # dd = defaultdict(tuple)
              
            
          

字典排序

            
              
                # 字典排序
              
              
shares 
              
                =
              
              
                {
              
              
                'ACME'
              
              
                :
              
              
                45.23
              
              
                ,
              
              
                'AAPL'
              
              
                :
              
              
                612.78
              
              
                ,
              
              
                'IBM'
              
              
                :
              
              
                205.55
              
              
                ,
              
              
                'HPQ'
              
              
                :
              
              
                37.20
              
              
                ,
              
              
                'FB'
              
              
                :
              
              
                10.75
              
              
                }
              
              
rev_shares 
              
                =
              
              
                list
              
              
                (
              
              
                zip
              
              
                (
              
              shares
              
                .
              
              values
              
                (
              
              
                )
              
              
                ,
              
              shares
              
                .
              
              keys
              
                (
              
              
                )
              
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                min
              
              
                (
              
              rev_shares
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                max
              
              
                (
              
              rev_shares
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                sorted
              
              
                (
              
              rev_shares
              
                )
              
              
                )
              
            
          

字典列表排序

            
              
                # 字典列表的排序
              
              
                from
              
               operator 
              
                import
              
               itemgetter
aa 
              
                =
              
              
                [
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'bob'
              
              
                ,
              
              
                'score'
              
              
                :
              
              
                10
              
              
                }
              
              
                ,
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'ming'
              
              
                ,
              
              
                'score'
              
              
                :
              
              
                12
              
              
                }
              
              
                ,
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'mike'
              
              
                ,
              
              
                'score'
              
              
                :
              
              
                1
              
              
                }
              
              
                ]
              
              
                sorted
              
              
                (
              
              aa
              
                ,
              
              key
              
                =
              
              itemgetter
              
                (
              
              
                'score'
              
              
                )
              
              
                )
              
            
          

字典共同點(diǎn)和不同點(diǎn)

            
              
                # 字典的共同點(diǎn) 和 不同點(diǎn)
              
              
a 
              
                =
              
              
                {
              
              
                'x'
              
              
                :
              
              
                1
              
              
                ,
              
              
                'y'
              
              
                :
              
              
                2
              
              
                ,
              
              
                'z'
              
              
                :
              
              
                3
              
              
                }
              
              
b 
              
                =
              
              
                {
              
              
                'w'
              
              
                :
              
              
                10
              
              
                ,
              
              
                'x'
              
              
                :
              
              
                11
              
              
                ,
              
              
                'y'
              
              
                :
              
              
                2
              
              
                }
              
              
                print
              
              
                (
              
              a
              
                .
              
              keys
              
                (
              
              
                )
              
              
                &
              
               b
              
                .
              
              keys
              
                (
              
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              a
              
                .
              
              keys
              
                (
              
              
                )
              
              
                -
              
               b
              
                .
              
              keys
              
                (
              
              
                )
              
              
                )
              
            
          

3、collections

保留最后幾個(gè)元素

            
              
                # 保留最后幾個(gè)元素
              
              
                from
              
               collections 
              
                import
              
               deque


              
                def
              
              
                lastN
              
              
                (
              
              ll
              
                )
              
              
                :
              
              
    dq 
              
                =
              
               deque
              
                (
              
              maxlen
              
                =
              
              
                3
              
              
                )
              
              
                for
              
               i 
              
                in
              
               ll
              
                :
              
              
                # yield i
              
              
        dq
              
                .
              
              append
              
                (
              
              i
              
                )
              
              
                return
              
               dq
    
aa 
              
                =
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                67
              
              
                ,
              
              
                4
              
              
                ,
              
              
                3
              
              
                ,
              
              
                6
              
              
                ,
              
              
                87
              
              
                ,
              
              
                4
              
              
                ]
              
              
lastN
              
                (
              
              aa
              
                )
              
            
          

頻率統(tǒng)計(jì)

            
              
                # 統(tǒng)計(jì)出現(xiàn)頻率
              
              
                import
              
               random

              
                from
              
               collections 
              
                import
              
               Counter

aa 
              
                =
              
              
                [
              
              random
              
                .
              
              randint
              
                (
              
              
                1
              
              
                ,
              
              
                10
              
              
                )
              
              
                for
              
               x 
              
                in
              
              
                range
              
              
                (
              
              
                30
              
              
                )
              
              
                ]
              
              
res 
              
                =
              
               Counter
              
                (
              
              aa
              
                )
              
              
                print
              
              
                (
              
              res
              
                )
              
              
                print
              
              
                (
              
              res
              
                .
              
              most_common
              
                (
              
              
                3
              
              
                )
              
              
                )
              
            
          

命名元組

            
              
                # 命名元組
              
              
                from
              
               collections 
              
                import
              
               namedtuple

sub 
              
                =
              
               namedtuple
              
                (
              
              
                'sub'
              
              
                ,
              
              
                [
              
              
                'name'
              
              
                ,
              
              
                'score'
              
              
                ]
              
              
                )
              
              
s 
              
                =
              
               sub
              
                (
              
              
                'bob'
              
              
                ,
              
              
                '87'
              
              
                )
              
              
                print
              
              
                (
              
              s
              
                .
              
              name
              
                )
              
              
                print
              
              
                (
              
              s
              
                .
              
              score
              
                )
              
            
          

字典(映射)聯(lián)合查找

            
              
                from
              
               collections 
              
                import
              
               ChainMap

a 
              
                =
              
              
                {
              
              
                'x'
              
              
                :
              
              
                1
              
              
                ,
              
              
                'z'
              
              
                :
              
              
                3
              
              
                }
              
              
b 
              
                =
              
              
                {
              
              
                'y'
              
              
                :
              
              
                2
              
              
                ,
              
              
                'z'
              
              
                :
              
              
                4
              
              
                }
              
              
c 
              
                =
              
              
                {
              
              
                'd'
              
              
                :
              
              
                5
              
              
                ,
              
              
                'z'
              
              
                :
              
              
                9
              
              
                }
              
              

md 
              
                =
              
               ChainMap
              
                (
              
              a
              
                ,
              
              b
              
                ,
              
              c
              
                )
              
              
                print
              
              
                (
              
              md
              
                .
              
              get
              
                (
              
              
                'x'
              
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              md
              
                .
              
              get
              
                (
              
              
                'z'
              
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              md
              
                .
              
              get
              
                (
              
              
                'yzz'
              
              
                )
              
              
                )
              
            
          

4、其他

解壓賦值

            
              
                # 解壓賦值
              
              
record 
              
                =
              
              
                (
              
              
                'Dave'
              
              
                ,
              
              
                'dave@example.com'
              
              
                ,
              
              
                '773-555-1212'
              
              
                ,
              
              
                '847-555-1212'
              
              
                )
              
              
name
              
                ,
              
              _
              
                ,
              
              
                *
              
              phone 
              
                =
              
               record

              
                print
              
              
                (
              
              name
              
                )
              
              
                print
              
              
                (
              
              phone
              
                )
              
            
          

去重且保持順序

            
              
                # 去重并且保持順序
              
              
                def
              
              
                dedupe
              
              
                (
              
              ll
              
                )
              
              
                :
              
              
    seen 
              
                =
              
              
                set
              
              
                (
              
              
                )
              
              
                for
              
               item 
              
                in
              
               ll
              
                :
              
              
                if
              
               item 
              
                not
              
              
                in
              
               seen
              
                :
              
              
                yield
              
               item 
            seen
              
                .
              
              add
              
                (
              
              item
              
                )
              
              
                return
              
               seen 

a 
              
                =
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                56
              
              
                ,
              
              
                7
              
              
                ,
              
              
                4
              
              
                ,
              
              
                8
              
              
                ,
              
              
                32
              
              
                ,
              
              
                8
              
              
                ,
              
              
                4
              
              
                ,
              
              
                76
              
              
                ,
              
              
                8
              
              
                ,
              
              
                43
              
              
                ,
              
              
                3
              
              
                ]
              
              
                print
              
              
                (
              
              
                list
              
              
                (
              
              dedupe
              
                (
              
              a
              
                )
              
              
                )
              
              
                )
              
            
          

切片

            
              
                # 切片命名
              
              

a 
              
                =
              
              
                '----80-34--------8000---'
              
              
b 
              
                =
              
              
                '----60-22--------7867---'
              
              

iid 
              
                =
              
              
                slice
              
              
                (
              
              
                4
              
              
                ,
              
              
                6
              
              
                )
              
              
age 
              
                =
              
              
                slice
              
              
                (
              
              
                7
              
              
                ,
              
              
                9
              
              
                )
              
              
salary 
              
                =
              
              
                slice
              
              
                (
              
              
                17
              
              
                ,
              
              
                21
              
              
                )
              
              
                print
              
              
                (
              
              a
              
                [
              
              iid
              
                ]
              
              
                )
              
              
                print
              
              
                (
              
              b
              
                [
              
              salary
              
                ]
              
              
                )
              
            
          

分組

            
              
                # 分組
              
              
                from
              
               operator 
              
                import
              
               itemgetter

              
                from
              
               itertools 
              
                import
              
               groupby

rows 
              
                =
              
              
                [
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '5412 N CLARK'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/01/2012'
              
              
                }
              
              
                ,
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '5148 N CLARK'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/04/2012'
              
              
                }
              
              
                ,
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '5800 E 58TH'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/02/2012'
              
              
                }
              
              
                ,
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '2122 N CLARK'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/03/2012'
              
              
                }
              
              
                ,
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '5645 N RAVENSWOOD'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/02/2012'
              
              
                }
              
              
                ,
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '1060 W ADDISON'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/02/2012'
              
              
                }
              
              
                ,
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '4801 N BROADWAY'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/01/2012'
              
              
                }
              
              
                ,
              
              
                {
              
              
                'address'
              
              
                :
              
              
                '1039 W GRANVILLE'
              
              
                ,
              
              
                'date'
              
              
                :
              
              
                '07/04/2012'
              
              
                }
              
              
                ,
              
              
                ]
              
              

rows
              
                .
              
              sort
              
                (
              
              key
              
                =
              
              itemgetter
              
                (
              
              
                'date'
              
              
                )
              
              
                )
              
              
                for
              
               date
              
                ,
              
              items 
              
                in
              
               groupby
              
                (
              
              rows
              
                ,
              
              itemgetter
              
                (
              
              
                'date'
              
              
                )
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              date
              
                )
              
              
                for
              
               i 
              
                in
              
               items
              
                :
              
              
                print
              
              
                (
              
              i
              
                )
              
            
          

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 狠狠色婷婷丁香六月 | 99久久精品免费看国产麻豆 | 亚洲第一区香蕉_国产a | 久久99精品一区二区三区 | 狠狠狠狠狠狠狠狠狠狠 | 日本久久久久亚洲中字幕 | 欧美亚洲日本在线 | 精品国产综合 | 久久99精品这里精品动漫6 | 色综合久久久久久久久五月性色 | 久久精品综合视频 | 色婷婷色综合 | 久久午夜伦理 | 久久 精品 一区二区 | 日本一级特黄大一片免 | 一区二区不卡久久精品 | 久久lu| 欧美亚洲中日韩中文字幕在线 | 老司机深夜影院入口aaaa | 桃色婷婷 | 人人爰人人人人人鲁 | 久久久精品久久视频只有精品 | 手机看片久久国产免费不卡 | 成人精品 | 亚洲国产成人综合精品2020 | 午夜视频网站在线观看 | 国产真实一区二区三区 | 99视频在线观看免费 | 2019年国产不卡在线刷新 | 国产亚洲综合成人91精品 | 毛片在线免费视频 | 国产一级特黄高清在线大片 | 一区二区三区不卡免费视频97 | 久久久久青草大香线综合精品 | 97免费视频观看 | 热99热| 午夜影院欧美 | 91在线精品视频 | 久久免费区一区二区三波多野 | 97视频久久| 国产免费久久精品丫丫 |