最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中字典和列表的索引效率分析及實戰(zhàn)結果

 更新時間:2026年03月10日 10:50:50   作者:YoungerChina  
Python中的索引是一種訪問數(shù)據(jù)結構中特定元素的方法,它在各種數(shù)據(jù)類型中都有應用,包括字符串、列表、元組和字典,這篇文章主要介紹了Python中字典和列表的索引效率分析及實戰(zhàn)結果的相關資料,需要的朋友可以參考下

1.序列

Python有多種內建的序列,所有序列都可以做某些特定的操作,大致上常用的是:加,乘,索引,分片以及檢查某個元素是否屬于序列的成員。 在這里我們重點討論兩種,字典與列表。并且只討論其索引效率

2. 列表

列表是Python中最具靈活性的有序集合對象類型,其屬性:

1. 任意對象的有序集合

2. 通過偏移讀取

3. 可變長度、異構以及任意嵌套

4. 屬于可變序列的分類

5. 對象引用數(shù)組

3. 字典

除了列表外,字典是Python中最具靈活性的內置數(shù)據(jù)結構類型,其屬性:

1. 通過鍵而不是偏移量來讀取

2. 任意對象的無序集合(鍵的hash值存在有序)

3. 可變長、異構以及任意嵌套

4. 屬于可映射類型

5. 對象引用表(散列表)

在Python中,字典是通過哈希表實現(xiàn)的。也就是說,字典是一個數(shù)組,而數(shù)組的索引是鍵經(jīng)過哈希函數(shù)處理后得到的。哈希函數(shù)的目的是使鍵均勻地分布在數(shù)組中。

4. 索引效率分析

通過上述可以簡單地了解字典和列表的區(qū)別,列表是根據(jù)偏移量來讀取的,字典是根據(jù)鍵的Hash來讀取的。

通過實驗來測試其索引效率:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
###############################################
# File Name   : test.py
# Author      : Younger Liu
# Mail        : lewiyon@126.com
# Created Time: Tue 19 Jun 2018 08:58:42 AM CST
# Description : 
###############################################
 
import time
import random
import string
 
MAX_COUNT = 1000000
 
def test_dict(data, key=None):
	b_time = int(time.time()*1000*1000)
	data.get(key)
	a_time = int(time.time()*1000*1000)
 
	print("Elapsed time %d us to query [%s]" % (a_time - b_time, key))
 
def test_array(data, key=None):
	b_time = int(time.time()*1000*1000)
	for ele in data:
		if ele == key:
			break
		continue
	a_time = int(time.time()*1000*1000)
	print("Elapsed time %d us to query [%s]" % (a_time - b_time, key))
 
def gen_arr():
	arr = []
	for i in range(MAX_COUNT):
		ele = ''.join(random.sample(string.ascii_letters + string.digits, 8))
		arr.append(ele)
		if i == 0:
			first = ele
		elif i == MAX_COUNT - 1:
			last = ele
	return arr, first, last
 
def gen_dict():
	dict = {}
	for i in range(MAX_COUNT):
		ele = ''.join(random.sample(string.ascii_letters + string.digits, 8))
		dict[ele] = ele
		if i == 0:
			first = ele
		elif i == MAX_COUNT -1:
			last = ele
	return dict, first, last
 
if __name__ == '__main__':
	arr, first_ele, last_ele = gen_arr()
	print("-----Query first ele in array-------")
	test_array(arr, first_ele)
	print("-----Query last ele in array-------")
	test_array(arr, last_ele)
	print("-----Query ele not in array-------")
	test_array(arr, '111111')
	dict, first_key, last_key = gen_dict()
	print("-----Query first generated ele in dict-------")
	test_dict(dict, first_key)
	print("-----Query last generated ele in dict-------")
	test_dict(dict, last_key)
	print("-----Query ele not in dict-------")
	test_dict(dict, '111111')

運行結果如下:

-----Query first ele in array-------
Elapsed time 10 us to query [dRP3aEZQ]
-----Query last ele in array-------
Elapsed time 37236 us to query [6agsBq37]
-----Query ele not in array-------
Elapsed time 38666 us to query [111111]
-----Query first generated ele in dict-------
Elapsed time 12 us to query [DkYN2xJL]
-----Query last generated ele in dict-------
Elapsed time 3 us to query [BrNCeWP2]
-----Query ele not in dict-------
Elapsed time 2 us to query [111111]

多次運行,其結果相差不多

由此可見,字典的索引效率要遠遠大于列表

總結

到此這篇關于Python中字典和列表的索引效率分析及實戰(zhàn)結果的文章就介紹到這了,更多相關Python字典和列表索引效率內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python實現(xiàn)地圖可視化folium完整過程

    Python實現(xiàn)地圖可視化folium完整過程

    Folium是一個基于leaflet.js的Python地圖庫,其中,Leaflet是一個非常輕的前端地圖可視化庫,本文重點給大家介紹Python實現(xiàn)地圖可視化folium完整過程,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 詳解python中index()、find()方法

    詳解python中index()、find()方法

    本文通過實例代碼給大家介紹了python中index()、find()方法,文中給大家提到了Python將DataFrame的某一列作為index的方法,需要的朋友可以參考下
    2019-08-08
  • OpenCV圖像處理之自定義濾波

    OpenCV圖像處理之自定義濾波

    濾波處理分為兩大類:線性濾波和非線性濾波,OpenCV里有這些濾波的函數(shù),使用起來非常方便,這篇文章主要給大家介紹了關于OpenCV圖像處理之自定義濾波的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • Python判斷兩個文件是否相同與兩個文本進行相同項篩選的方法

    Python判斷兩個文件是否相同與兩個文本進行相同項篩選的方法

    今天小編就為大家分享一篇關于Python判斷兩個文件是否相同與兩個文本進行相同項篩選的方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Flask web開發(fā)處理POST請求實現(xiàn)(登錄案例)

    Flask web開發(fā)處理POST請求實現(xiàn)(登錄案例)

    這篇文章主要介紹了Flask web開發(fā)處理POST請求實現(xiàn)(登錄案例),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python如何在單元測試中給對象打補丁

    Python如何在單元測試中給對象打補丁

    這篇文章主要介紹了Python如何在單元測試中給對象打補丁,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-08-08
  • Python中數(shù)字以及算數(shù)運算符的相關使用

    Python中數(shù)字以及算數(shù)運算符的相關使用

    這篇文章主要介紹了Python中數(shù)字以及算數(shù)運算符的相關使用,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • 使用python裝飾器驗證配置文件示例

    使用python裝飾器驗證配置文件示例

    項目中用到了一個WriteData的函數(shù)保存用戶填寫的配置,為了實現(xiàn)驗證用戶輸入的需求,在不影響接口的使用的前提下,采用了python的裝飾器實現(xiàn),代碼片段演示了如何驗證WriteData函數(shù)的輸入?yún)?shù)
    2014-02-02
  • Python探索之爬取電商售賣信息代碼示例

    Python探索之爬取電商售賣信息代碼示例

    這篇文章首先簡單介紹了網(wǎng)絡爬蟲的基本概念,然后向大家分享了一段有關爬取電商售賣信息的實例代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • OpenCV 邊緣檢測

    OpenCV 邊緣檢測

    OpenCV提供了許多邊緣檢測濾波函數(shù),這些濾波函數(shù)都會將非邊緣區(qū)域轉為黑色,將邊緣區(qū)域轉為白色或其他飽和的顏色。這篇文章主要介紹了OpenCV 邊緣檢測,需要的朋友可以參考下
    2019-07-07

最新評論

靖州| 镇原县| 偏关县| 那坡县| 绥化市| 汶川县| 贵南县| 西和县| 孟津县| 海盐县| 措美县| 依安县| 齐齐哈尔市| 英吉沙县| 三河市| 临朐县| 金坛市| 枣庄市| 洮南市| 轮台县| 常山县| 区。| 岐山县| 施秉县| 元谋县| 老河口市| 仁布县| 枣强县| 霍山县| 寻甸| 莱西市| 新绛县| 宁强县| 邮箱| 泉州市| 嵊州市| 英吉沙县| 余干县| 普格县| 东安县| 怀集县|