精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

數據類型之元組和列表的性能分析、命名元組

存儲 存儲軟件
元組和列表用來存儲數據,在元組和列表里面查詢的時候,到底哪個更快呢?計算創建元組和列表所需的時間:ipython 中使用timeit這個命令。

[[375462]]

 目錄

  • 一、元組和列表
    • 1.元組和列表的性能分析
    • 2.為什么列表在 Python 中是最常用的呢?
    • 3.timeit 里面有個 Timer 類
    • 4.timeit 里面還有個直接用的 timeit 的方法,timeit.timeit()
    • 5.這 2 個方法有啥區別?
  • 二、命名元組
  • 三、命名元組有什么特點?

一、元組和列表

元組vs列表

 

1.元組和列表的性能分析

元組和列表用來存儲數據,在元組和列表里面查詢的時候,到底哪個更快呢?

計算創建元組和列表所需的時間:ipython 中使用timeit這個命令。

計算時間模塊介紹:

  1. import timeit 
  2. #timeit.timeit 

可以用這個模塊來測試函數的性能。

安裝 ipython:pip install ipython

 

ipython 是個交互環境,就跟我們輸入 Python 進去是一樣的。只不過它外面做了一層封裝,比 Python 交互環境更好用一點。

ipython 里面有一個命令叫做timeit,后面可以跟一個 Python 表達式。

例如定義一個列表在后面:

 

敲完這行命令,返回了一行時間。這個是在內存中初始化一個列表,如圖可以看到創建了一千萬次,時間是 48.4ns

可以看出,創建一個元組比創建一個列表要快得多。

元組的速度比列表要快 3 倍多。在內存里,當我們創建一個列表的時候,會劃分一塊區域出來,拿一塊區域給列表來儲存值。例如初始化,里面給它留了 20 個位置在這個列表里面儲存值。

列表占用內存如圖

 

當儲存到一定程度,Python 解釋器檢測到列表快要盛滿了的時候,它會對列表做一個擴容。

給擴容到 200,當存儲到 150 的時候,發現又快存儲滿了,又會給你繼續擴容。

隨著數據的增多,底層會不斷給這個列表擴容。

初始化一個元組,同樣也是一千萬次,只需 12.8ns

 

元組是一個不可變的類型。

比如定義的元組里面有 3 個元素,Python 解釋器在給它分內存的時候,就給它分了 3 個格子。

這里面只能存 3 條數據,就這么大,所以元組占用的內存比列表要少。

元組和列表內存占用對比圖

 

用一個列表存儲 50 條數據和用一個元組存儲 50 條數據,那么元組占用的內存要比列表小得多。

2.為什么列表在 Python 中是最常用的呢?

因為列表比較靈活,用列表的話,可以往里面不斷得添加元素。如果元素固定的,那就用元組。

3.timeit 里面有個 Timer 類。

來看看這個類的源碼:


 

 

timer=default_timer代表的是:創建一個列表、元組等,它要執行的一個次數。

看源碼,默認是一千萬次:

 

import timeit # 這個模塊可以用來做性能分析def func(): for i in range(10): print(i)# 這個對象有個方法叫做timeitres = timeit.Timer(func).timeit(100) # 把這個func函數傳進去,運行100次,然后返回的是個時間# timeit.Timer(func).timeit(100)中函數func是不需要加引號的,如果是字符串、列表這些需要加# 引號放進去print(res)

可以看到運行 100 次需要的時間是:0.0043269999999999975

4.timeit 里面還有個直接用的 timeit 的方法,timeit.timeit()

  1. import timeit  # 這個模塊可以用來做性能分析 
  2.  
  3.  
  4. def func(): 
  5.     for i in range(10): 
  6.         print(i) 
  7.  
  8. # 這個對象有個方法叫做timeit 
  9. # res = timeit.Timer(func).timeit(100) # 把這個func函數傳進去,運行100次,然后返回的是個時間 
  10. # timeit.Timer(func).timeit(100)中函數func是不需要加引號的,如果是字符串、列表這些需要加引號放進去 
  11.  
  12. # print(res) 
  13.  
  14. res2 = timeit.timeit('[1,2,3]'
  15. print(res2) 

這個模塊的作用: 大家寫的功能函數,可以用它測下功能函數的速度,執行大概要多久。

默認是一千萬次,結果如下:

 

如果列表不加引號直接傳是會報錯的:

 

提示不可被調用!

5.這 2 個方法有啥區別?

其實它們是一個東西。

 

二、命名元組

元組的性能是大大優于列表的。元組、列表在使用的時候,都是通過下標索引取值的。

下標索引取值不太人性化,如果我知道數據儲存在元組里面,但是我不知道它具體儲存的下標位置。這個時候找這個元素,還得先把下標找出來,知道下標再去拿,這樣很不方便。

字典的話,這方面就比較有優勢。數據是存儲在字典里面的,只要通過鍵,就能把值找到。字典相對于元組和列表,有一定的優勢和劣勢。

命名元組使用的時候可以讓元組像字典一樣去取值。

例如,有個元組里面保存了 3 條數據:

創建一個命名元組的話,需要用到 Python 的一個內置模塊from collections import namedtuple

  1. import timeit  # 這個模塊可以用來做性能分析 
  2. from collections import namedtuple 
  3. # namedtuple是個函數,創建命名元組可以通過這個函數來創建 
  4.  
  5. def func(): 
  6.     for i in range(10): 
  7.         print(i) 
  8.  
  9. # 這個對象有個方法叫做timeit 
  10. # res = timeit.Timer(func).timeit(100) # 把這個func函數傳進去,運行100次,然后返回的是個時間 
  11. # timeit.Timer(func).timeit(100)中函數func是不需要加引號的,如果是字符串、列表這些需要加引號放進去 
  12.  
  13. # print(res) 
  14.  
  15. res2 = timeit.timeit('[1,2,3]'
  16.  
  17. print(res2) 
  18.  
  19.  
  20. # 命名元組 
  21.  
  22. # 如果知道里面儲存的具體位置,可以通過下標取值。例如tu=[0] 
  23. # 如果我不知道名字存儲在哪里,通過下標去取值就不好取了 
  24.  
  25. # 命名元組可以使取值的時候像列表一樣取 
  26.  
  27. student_info = namedtuple('info_tuple',['name','age','gender']) # 這個函數接收2個參數,第一個參數是創建命名元組的類型的名字; 
  28. # 第二個參數的話,傳一個列表 
  29. # 列表里寫創建命名元組的一個命名,例如第一個元素命名為name 
  30. # 這個函數調用傳了2個參數,返回出來一個對象。這個對象叫做student_info 
  31. # 通過這個對象student_info創建命名元組 
  32.  
  33. tu = student_info('qinghan',18,'nv'
  34. print(tu) 

 

這個 tu 就是個命名元組。

student_info 是通過命名元組這個namedtuple函數創建命名元組類型:namedtuple('info_tuple',['name','age','gender'])。

然后返回出來一個對象student_info

通過student_info這個對象傳入對應的元組,定義元組的時候就通過這個對象把元素寫進去,返回的就是命名元組。

三、命名元組有什么特點?

它取值的時候可以像字典一樣取值,通過對應的鍵,找到對應的值。命名元組使用起來更像對象。

這樣用:命名元組.name

這樣就能找到 name 所對應的值:

  1. import timeit  # 這個模塊可以用來做性能分析 
  2. from collections import namedtuple 
  3. # namedtuple是個函數,創建命名元組可以通過這個函數來創建 
  4.  
  5. def func(): 
  6.     for i in range(10): 
  7.         print(i) 
  8.  
  9. # 這個對象有個方法叫做timeit 
  10. # res = timeit.Timer(func).timeit(100) # 把這個func函數傳進去,運行100次,然后返回的是個時間 
  11. # timeit.Timer(func).timeit(100)中函數func是不需要加引號的,如果是字符串、列表這些需要加引號放進去 
  12.  
  13. # print(res) 
  14.  
  15. res2 = timeit.timeit('[1,2,3]'
  16.  
  17. print(res2) 
  18.  
  19.  
  20. # 命名元組 
  21.  
  22. # 如果知道里面儲存的具體位置,可以通過下標取值。例如tu=[0] 
  23. # 如果我不知道名字存儲在哪里,通過下標去取值就不好取了 
  24.  
  25. # 命名元組可以使取值的時候像列表一樣取 
  26.  
  27. student_info = namedtuple('info_tuple',['name','age','gender']) # 這個函數接收2個參數,第一個參數是創建命名元組的類型的名字; 
  28. # 第二個參數的話,傳一個列表 
  29. # 列表里寫創建命名元組的一個命名,例如第一個元素命名為name 
  30. # 這個函數調用傳了2個參數,返回出來一個對象。這個對象叫做student_info 
  31. # 通過這個對象student_info創建命名元組 
  32.  
  33. tu = student_info('qinghan',18,'nv'
  34. print(tu.name

 

設定命名元組類型的時候,它返回的這個對象它里面只包含了傳進去的這幾個名字。

接下來,要創建命名元組的時候,元素和它一樣多,名字和對應的元素的值是一一對應的,不能多,不能少。

否則就會報錯:

 

print(type(tu)) # 看下它的類型

 

它返回的對象和類型名用的同一個名字。

print(type(student_info))

  1. import timeit  # 這個模塊可以用來做性能分析 
  2. from collections import namedtuple 
  3. # namedtuple是個函數,創建命名元組可以通過這個函數來創建 
  4.  
  5. def func(): 
  6.     for i in range(10): 
  7.         print(i) 
  8.  
  9. # 這個對象有個方法叫做timeit 
  10. # res = timeit.Timer(func).timeit(100) # 把這個func函數傳進去,運行100次,然后返回的是個時間 
  11. # timeit.Timer(func).timeit(100)中函數func是不需要加引號的,如果是字符串、列表這些需要加引號放進去 
  12.  
  13. # print(res) 
  14.  
  15. res2 = timeit.timeit('[1,2,3]'
  16.  
  17. print(res2) 
  18.  
  19.  
  20. # 命名元組 
  21.  
  22. # 如果知道里面儲存的具體位置,可以通過下標取值。例如tu=[0] 
  23. # 如果我不知道名字存儲在哪里,通過下標去取值就不好取了 
  24.  
  25. # 命名元組可以使取值的時候像列表一樣取 
  26. # 設定命名元組類型 
  27. # student_info是個類 
  28. student_info = namedtuple('student_info',['name','age','gender']) # 這個函數接收2個參數,第一個參數是創建命名元組的類型的名字; 
  29. # 第二個參數的話,傳一個列表 
  30. # 列表里寫創建命名元組的一個命名,例如第一個元素命名為name 
  31. # 這個函數調用傳了2個參數,返回出來一個對象。這個對象叫做student_info 
  32. # 通過這個對象student_info創建命名元組 
  33.  
  34. tu = student_info('qinghan',18,'nv'
  35. print(tu.name
  36.  
  37. print(type(tu)) # 看下它的類型 
  38. print(type(student_info)) 
  39. # 因為student_info是個類,所以看student_info的type就是個type。隨便看哪個類都是一樣的。 

本文轉載自微信公眾號「清菡軟件測試」,可以通過以下二維碼關注。轉載本文請聯系清菡軟件測試公眾號。

 

責任編輯:武曉燕 來源: 清菡軟件測試
相關推薦

2022-03-03 17:06:24

序列類型新增元素Python

2023-05-05 08:53:38

迭代器生成器Python

2024-07-11 15:50:36

2009-12-04 09:14:05

.NET 4.0

2024-12-05 15:33:50

Python列表元組

2023-11-02 13:33:00

Python數據結構

2009-06-17 13:57:25

Scala元組數組

2023-10-20 08:18:17

Python數據類型

2022-10-30 14:22:25

Python編程模塊

2023-06-30 17:56:31

Scala元組

2024-10-30 08:00:00

Python列表元組

2021-04-01 15:02:56

Python循環編程

2010-03-11 15:56:15

Python列表

2022-05-19 09:01:08

TypeScript元組對象

2023-10-19 07:42:37

Python數據類型

2024-11-12 06:27:16

Python列表元組

2016-08-18 14:13:55

JavaScript基本數據引用數據

2018-11-15 09:45:47

JavaScript數據類型變量

2010-07-22 17:57:40

2023-07-12 08:29:58

TypeScrip元組元素
點贊
收藏

51CTO技術棧公眾號

欧美美乳视频| 日韩精品手机在线观看| 欧美成人一区二区在线观看| 成人免费视频毛片| 国产麻豆一区二区三区| 久久久影视传媒| 久久久久国产一区二区三区| 亚洲精品一区二区三区蜜桃久 | 国产精品乱码人人做人人爱| 午夜精品三级视频福利| 最新国产黄色网址| 国产免费a∨片在线观看不卡| 午夜视频一区二区在线观看| 欧美激情中文字幕| 91成人在线播放| 无码人妻精品一区二区三| 成人激情诱惑| 国产精品久久国产精麻豆99网站| 午夜精品久久17c| 舐め犯し波多野结衣在线观看| а√天堂8资源在线| 国产综合色在线| 自拍偷拍亚洲精品| 欧美 日韩 国产一区| 亚洲精品一区二区三区四区 | 欧美一区二区三区四区夜夜大片| 国产成人精品亚洲男人的天堂| 日本高清久久| 欧美性受xxxx| 亚洲国产一区二区三区在线| 亚洲第一第二区| 久久精品国产99| 日韩最新av在线| 亚洲天堂国产视频| 吞精囗交69激情欧美| 久久九九久久九九| 国产精品一区二区三区观看| 中文字幕影音先锋| 日韩中文在线| 欧美日韩国产首页在线观看| 亚洲国产欧美一区二区三区不卡| 亚洲人在线观看视频| 先锋亚洲精品| 综合网日日天干夜夜久久| 国产无套内射久久久国产| 麻豆国产在线播放| 奇米888四色在线精品| 最近中文字幕mv在线一区二区三区四区 | wwwwww日本| 成人国产精选| 亚洲免费三区一区二区| 国产不卡一区二区在线观看| 久久草视频在线| 激情五月综合| 日韩精品一区二区在线观看| 久草免费福利在线| 婷婷丁香一区二区三区| 久久综合九色| 精品激情国产视频| 国产精品无码电影| 四虎永久精品在线| 午夜影院久久久| 视频一区二区综合| 欧美熟妇乱码在线一区| 日韩和欧美一区二区三区| 少妇久久久久久| 国产亚洲精品精品精品| 精品国产亚洲日本| 精品久久久久久久久久| 一区二区三区久久网| 婷婷五月综合久久中文字幕| bt欧美亚洲午夜电影天堂| 国产精品免费在线免费| 黄页网站免费观看| 日韩精品一区二区久久| 精品久久人人做人人爰| 熟妇人妻无乱码中文字幕真矢织江| 国产不卡在线| 国产欧美日本一区视频| 亚洲黄色一区二区三区| 精品51国产黑色丝袜高跟鞋| 91蝌蚪porny九色| 91久久精品国产91性色| 久久久久久无码午夜精品直播| 欧美激情成人在线| 有码中文亚洲精品| 男男做爰猛烈叫床爽爽小说| 欧美色资源站| 日韩一区和二区| 在线免费视频a| 少妇视频在线观看| 亚洲成av人片一区二区三区| 欧美日韩亚洲一| 日韩专区视频| 亚洲国产精品久久| 佐山爱在线视频| 九七电影院97理论片久久tvb| 一区二区三区欧美| 91免费视频黄| 在线播放日本| 国产视频亚洲色图| 精品一区二区视频| 不卡视频在线播放| 国产在线精品一区二区不卡了| 999视频在线观看| 国产区一区二区三| 亚洲美女91| 午夜精品视频在线| 一级做a爱片性色毛片| 天使萌一区二区三区免费观看| 成人网页在线免费观看| 亚洲影院一区二区三区| 秋霞午夜鲁丝一区二区老狼| 不卡视频一区二区| 91精品大全| 国产精品久久久久久久久久免费看| 国产天堂视频在线观看| 国产亚洲欧美日韩精品一区二区三区 | 国产99视频在线| 精品一区二区三区日韩| 国产精品稀缺呦系列在线| 日韩av免费播放| 免费在线视频一区| 国产精品美女久久久久av超清| 性做久久久久久久| 国产精品你懂的在线| 91专区在线观看| 自拍一区在线观看| 色哟哟欧美精品| 午夜免费高清视频| 日韩啪啪网站| 国产一区二区久久精品| 一级黄色录像毛片| 婷婷色综合网| 欧美高清在线播放| 九九热精品视频在线| 国产成人av电影在线| 精品无人乱码一区二区三区的优势| 美女羞羞视频在线观看| 亚洲永久精品国产| 色男人天堂av| 中文字幕一区二区精品区| 久久精品成人欧美大片| 色老头一区二区| ww久久中文字幕| 免费无遮挡无码永久视频| av不卡一区| 亚洲精品在线观看www| www.黄色在线| 久久综合中文| 日韩动漫在线观看| 在线中文字幕电影| 天天做天天摸天天爽国产一区| 天天av天天操| 欧美日韩一本| 91成人福利在线| 三级黄视频在线观看| 最新中文字幕一区二区三区 | 欧洲日本在线| 欧美电影一区二区三区| 天天爽夜夜爽视频| 欧美精品九九| 国产精品免费在线免费| 日本中文字幕电影在线免费观看| 欧美性欧美巨大黑白大战| 精品一区二区三区蜜桃在线| 日韩高清一区二区| 亚洲图片在线观看| 精品一区二区三区中文字幕| 欧美另类老女人| 中文字幕+乱码+中文乱码www | 极品中文字幕一区| 国产精品中文在线| 福利视频在线| 亚洲福利小视频| 999视频在线| 国产精品国产自产拍高清av王其| 九九热精品国产| 天天躁日日躁成人字幕aⅴ| 日本午夜精品理论片a级appf发布| 国产又粗又黄又爽| 一区二区欧美在线观看| 捆绑裸体绳奴bdsm亚洲| 久久性天堂网| 日日噜噜噜夜夜爽爽| 第四色中文综合网| 欧美成人sm免费视频| 成人黄色三级视频| 91视频国产观看| 成年人在线观看视频免费| 五月婷婷六月综合| 精品一区二区三区日本| 人人玩人人添人人澡欧美| 久久6精品影院| 青青草免费在线| 在线播放91灌醉迷j高跟美女| 69精品无码成人久久久久久| 韩国女主播成人在线| 五月天久久狠狠| 亚洲一二三区视频| 欧美国产第二页| 毛片在线免费| 日韩免费电影一区| 午夜精品免费观看| 一区二区三区免费网站| 91狠狠综合久久久久久| 男女激情视频一区| 日韩a∨精品日韩在线观看| 成人看的视频| 精品在线不卡| 国产一区一区| 国产精品免费在线免费| 欧美少妇精品| 欧美国产日本高清在线| 日本中文字幕视频在线| 亚洲欧洲午夜一线一品| 中文字幕在线欧美| 26uuu精品一区二区三区四区在线| 粉色视频免费看| 久久婷婷影院| 日本在线xxx| 午夜精品亚洲| 四虎影院一区二区三区 | 色一情一乱一伦一区二区三欧美 | 欧美中日韩一区二区三区| 成人av动漫| 91在线国产电影| 久久久久黄色| 国产精品激情av在线播放 | 久久精品视频免费| 国产污在线观看| 国产成人高清在线| 亚洲在线观看网站| 精品一区二区在线看| 亚洲77777| 国产精品久久久久蜜臀| 日韩欧美三级一区二区| 中文字幕亚洲影视| 国产在线a不卡| 日韩另类在线| 亚洲激情自拍图| 东京热一区二区三区四区| 亚洲国产一区二区三区| 亚洲精品成人无码| 久久只精品国产| 亚洲天堂av一区二区| 奇米精品一区二区三区在线观看一 | 日本丶国产丶欧美色综合| 国产人妻大战黑人20p| 久久影院视频免费| 人妻熟女aⅴ一区二区三区汇编| 成年人国产精品| 91视频免费版污| 日韩激情一二三区| 欧美美女性视频| 韩日精品视频一区| 欧美一区二区三区影院| 久久精品观看| 日本福利视频网站| 欧美精品羞羞答答| 成人动漫视频在线观看免费| 日韩高清一区| 国产欧美日韩一区二区三区| 日本高清不卡一区二区三区视频| 欧美成年人视频| 久久免费电影| 色偷偷9999www| 99福利在线| 97精品一区二区视频在线观看| 欧美激情网站| 国产精品视频精品视频| 成人噜噜噜噜| 国内精品二区| 精品理论电影在线| 成人免费看片视频在线观看| 精品国产一区二区三区四区| 亚洲欧美国产不卡| 亚洲欧美一级二级三级| 9久久9毛片又大又硬又粗| 日本亚洲天堂网| 巨乳女教师的诱惑| 91在线观看地址| 性感美女一区二区三区| 极品少妇xxxx精品少妇| 人妻精油按摩bd高清中文字幕| 成+人+亚洲+综合天堂| 性猛交ⅹxxx富婆video| 亚洲色图都市小说| 黄色免费一级视频| 一区二区三区不卡视频| 精品成人av一区二区在线播放| 精品视频在线免费看| 免费黄色av片| 欧美一区二区大片| 国产精品无码天天爽视频| 欧美主播一区二区三区美女| 亚洲精品午夜国产va久久成人| 欧美亚洲动漫精品| 亚洲免费成人网| 日韩一区二区在线观看视频| 五月婷婷在线播放| 久久精品视频在线播放| 悠悠资源网亚洲青| 7777精品久久久大香线蕉小说| 色婷婷综合久久久久久| 四虎精品欧美一区二区免费| 一本色道久久综合一区| 国产男女免费视频| 9国产精品视频| 国产欧美精品一二三| 久久综合av免费| 国产真实乱人偷精品视频| 亚洲一区二区三区四区在线免费观看 | 午夜视频一区在线观看| 一级黄色大片网站| 亚洲天堂网在线观看| 波多野结依一区| 8050国产精品久久久久久| 91麻豆精品| 亚洲伊人一本大道中文字幕| 久久天堂久久| 亚欧精品在线| 久久久久久久高潮| 亚洲精品国产成人av在线| 亚洲欧美国产77777| 中文字幕在线观看1| 亚洲摸下面视频| 成人午夜电影在线观看| 精品国产一区二区在线| 欧美日韩精品免费观看视完整| 国产麻豆乱码精品一区二区三区| 五月天久久久| 超碰人人草人人| 国产精品久久久一本精品| 波多野结衣视频观看| 亚洲男人的天堂网站| 五月天国产在线| 精品一卡二卡三卡四卡日本乱码| 亚洲黄色大片| 妖精视频一区二区| 亚洲成人在线网站| 亚洲黄网在线观看| 精品视频偷偷看在线观看| h片在线观看下载| 国产成人在线一区二区| av一级久久| 亚洲综合激情五月| 激情成人综合网| 青娱乐91视频| 精品久久一区二区三区| 丁香影院在线| 国外成人在线视频网站| 在线视频亚洲| 亚洲自拍偷拍一区二区| 色网站国产精品| a天堂在线资源| 成人免费激情视频| 欧美成人一区二免费视频软件| 日本女人黄色片| 亚洲国产一区二区在线播放| 五月婷中文字幕| 国产成人avxxxxx在线看 | 亚洲欧美www| 午夜欧美巨大性欧美巨大| 天堂av一区二区| 国产在线精品一区二区不卡了| 久久久久免费看| 欧美日韩一区在线观看| 美女免费久久| 亚洲一区二区在线| 一区在线视频观看| www.色多多| 欧美日韩综合在线免费观看| 欧美jizz18hd性欧美| 91麻豆蜜桃| 亚洲一区日韩| 国产乱子轮xxx农村| 精品久久久久久久久久ntr影视| 青青草视频免费在线观看| 国产精品视频免费在线观看| 一区二区电影在线观看| 丰满少妇xbxb毛片日本| 色妞www精品视频| 91网在线看| 欧美美乳视频网站在线观看| 欧美日韩三级| 亚洲自拍偷拍一区二区| 91麻豆精品国产91久久久久久 | 国产福利小视频在线| 成人写真视频福利网| 亚洲欧洲视频| 长河落日免费高清观看| 亚洲第一中文字幕在线观看| 少妇精品视频一区二区免费看| 国产在线一区二区三区欧美| 日韩黄色免费网站| 久久露脸国语精品国产91| 日日骚久久av| 外国成人在线视频| 在线观看你懂的视频|