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

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

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

1.序列

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

2. 列表

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

1. 任意對(duì)象的有序集合

2. 通過偏移讀取

3. 可變長(zhǎng)度、異構(gòu)以及任意嵌套

4. 屬于可變序列的分類

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

3. 字典

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

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

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

3. 可變長(zhǎng)、異構(gòu)以及任意嵌套

4. 屬于可映射類型

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

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

4. 索引效率分析

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

通過實(shí)驗(yàn)來測(cè)試其索引效率:

#!/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')

運(yùn)行結(jié)果如下:

-----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]

多次運(yùn)行,其結(jié)果相差不多

由此可見,字典的索引效率要遠(yuǎn)遠(yuǎn)大于列表

總結(jié)

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

相關(guān)文章

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

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

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

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

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

    OpenCV圖像處理之自定義濾波

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

    Python判斷兩個(gè)文件是否相同與兩個(gè)文本進(jìn)行相同項(xiàng)篩選的方法

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

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

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

    Python如何在單元測(cè)試中給對(duì)象打補(bǔ)丁

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

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

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

    使用python裝飾器驗(yàn)證配置文件示例

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

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

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

    OpenCV 邊緣檢測(cè)

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

最新評(píng)論

堆龙德庆县| 金川县| 申扎县| 久治县| 遂宁市| 孟连| 东光县| 临朐县| 绥江县| 溧水县| 汉川市| 锦屏县| 绥江县| 黎平县| 徐闻县| 三原县| 台东市| 台中市| 阿坝| 宝鸡市| 兴义市| 成武县| 敖汉旗| 静海县| 宕昌县| 镇坪县| 那曲县| 北安市| 丹凤县| 蒙城县| 德惠市| 子洲县| 怀宁县| 平陆县| 平利县| 嘉荫县| 渭南市| 杭锦旗| 渝中区| 伊宁县| 诏安县|