欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python-cookbook

系統 1745 0

PYTHON-COOKBOOK

文章目錄

  • PYTHON-COOKBOOK
    • 一:數據結構和算法
      • 1、Heapq
        • 取出最大或最小的幾個元素
        • 優先級隊列
      • 2、字典
        • 多值字典
        • 字典排序
        • 字典列表排序
        • 字典共同點和不同點
      • 3、collections
        • 保留最后幾個元素
        • 頻率統計
        • 命名元組
        • 字典(映射)聯合查找
      • 4、其他
        • 解壓賦值
        • 去重且保持順序
        • 切片
        • 分組

一:數據結構和算法

三個基本的寫法:

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

1、Heapq

取出最大或最小的幾個元素

            
              
                # 最大或者最小的n個元素
              
              
                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
              
                )
              
            
          

優先級隊列

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

字典共同點和不同點

            
              
                # 字典的共同點 和 不同點
              
              
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

保留最后幾個元素

            
              
                # 保留最后幾個元素
              
              
                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
              
                )
              
            
          

頻率統計

            
              
                # 統計出現頻率
              
              
                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
              
                )
              
            
          

字典(映射)聯合查找

            
              
                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
              
                )
              
            
          

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲天堂中文网 | 亚洲国产精品一区二区久久 | 久久久精品在线观看 | 亚洲伊人成综合网 | www国产成人免费观看视频,深夜成人网 | 国产精品1区 | 欧美日韩一区不卡 | 日本视频高清免费观看xxx | 麻豆国产免费影片 | 国产三级在线 | 国产麻豆剧传媒精品好看的片 | 波多野结衣xfplay在线观看 | 国产人成精品综合欧美成人 | 久久97精品久久久久久久看片 | 天天操天天干天天操 | 色黄视频在线观看 | 精品欧美乱码久久久久久 | 日本不卡在线一区二区三区视频 | a级片免费视频 | 色综合成人 | 三级欧美日韩 | 亚洲av一级毛片特黄大片 | jizzjizzjizz亚洲日本 | 久久99精品国产99久久 | a毛片在线看免费观看 | 国产一级毛片夜一级毛片 | 无码人妻精品1国产婷婷 | 久久久精品在线观看 | 亚洲欧美综合 | 亚洲九九香蕉 | 精品一区精品二区 | 国产夜色福利院在线观看免费 | 黑色丝袜美女被视频网站 | 欧美日韩视频在线第一区二区三区 | 嫩草视频在线播放 | 亚洲国产午夜精品乱码 | 天天干天天色综合 | 国产偷久久一级精品60部 | 91视频观看 | 亚洲国产精品综合久久网络 | 91视频.com|