字典是通过hash表的原理实现的,每个元素都是一个键值对,通过元素的键计算出一个唯一的哈希值,这个hash值决定了元素的地址,因此为了保证元素地址不一样,必须保证每个元素的键和对应的hash值是完全不同的,并且键的类型必须是不可修改的,所以键的类型可以使数值,字符串常量或元组,但不能是列表,因为列表是可以被修改的。
所以字典具有下列特性:
1、元素的查询和插入操作很快,基本上是常数级别
2、占用内存较大,采用的是空间换时间的方法
字典的初始化
下面的方法都是等价的
d={'a':1, 'b':2, 'c':3}
d=dict({'a':1, 'b':2, 'c':3})
d = dict([('a',1), ('b', 2), ('c', 3)])
d = dict(a=1, b=2, c=3)
d = dict(zip(['a', 'b', 'c'], [1,2,3]))#这个方法也可以用作将两个列表合并成一个字典
赋值元素
1、e = d#引用赋值,e、d始终是一样的
2、e = d.copy()#值赋值,二者是没有关联的
3、d.copy()是一个浅拷贝,当键值对的值遇到字典或者列表时,字典或列表还会随着原来的变化而变化,此时的值相当于元组或列表的引用或指针,而不是其本身,指向的元组或列表其实还是原来的。使用copy模块的deepcopy()方法可以避免这种情况。
import copy dict1 = {'a': [1, 2], 'b': 3} dict2 = dict1 dict3 = dict1.copy() dict4 = copy.deepcopy(dict1) dict1['b'] = 'change'dict1['a'].append('change')print dict1 # {'a': [1, 2, 'change'], 'b': 'change'}print dict2 # {'a': [1, 2, 'change'], 'b': 'change'}print dict3 # {'a': [1, 2, 'change'], 'b': 3}print dict4 # {'a': [1, 2], 'b': 3}
增加元素
1、d['d'] = 4#直接通过下标添加,如果该键值已存在,那就是修改元素了,当然也可以访问元素
删除元素
1、d.clear()#删除d中的所有元素
2、d.pop('a')#删除键值为‘a’的元素
3、del d['a']#删除键值为‘a’的元素
遍历元素
for k in d:
print 'd[%s]=' % k,d[k]
或
for k,v in d.items():
print 'd[%s]=' % k,v
或
for k,v in d.iteritems():
print 'd[%s]=' % k,v
或
for k,v in d.viewitems():
print 'd[%s]=' % k,v
items(),iteritems()和viewitems()区别
python2.x的 items() 就是返回一个像上面那样的包含dict所有元素的list,但是由于这样太浪费内存,所以后来就加入了(注:在Python 2.2开始出现的)iteritems(), iterkeys(), itervalues()这一组函数,用于返回一个 iterator 来节省内存,但是迭代器不能反映dict在调用这个函数之后的变化。所以就添加了viewitems(),始终代表最新的元素。Python3.x中只有一个items函数,这个函数与2.x中的viewitems()等价。
字典合并
1、dd = dict(dict1.items() + dict2.items())
但是这种效率不高,通过上面的分析指导,它实际上是调用items先返回对应的列表,然后执行列表相加,最后再按照列表初始化成字典的形式进行初始化
2、dd = dict(dict1, **dict2)
字典的键必须是字符串。在Python 2(解释器是CPython)中,我们可以使用非字符串作为键,但别被蒙骗了:这种hack只是凑巧在使用标准CPython运行环境的Python 2中才有效。
上面语句相当于
dd = dict1.copy()
dd.update(dict2)
其中的dd.update(dict2)又相当于
for k in dict2
dd[k] = dict2[k]
可知update的作用不仅可以添加不存在的元素,还能修改已存在的键的元素值。
并且通过上面知道通过update和for...in也是可以合并字典的。
排序
dict = { : , : , : , : sorted(dict.items(), key= sorted(dict.items(), key= d: d[1]) ls = list(dict.keys()) ls.sort() for k in ls: print(k, dict[k]) for k in sorted(dict.keys()): print(k, dict[k])
以上是python dict字典详细说明的详细内容。更多信息请关注PHP中文网其他相关文章!

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

Inpython,ListSusedynamicMemoryAllocationWithOver-Asalose,而alenumpyArraySallaySallocateFixedMemory.1)listssallocatemoremoremoremorythanneededinentientary上,respizeTized.2)numpyarsallaysallaysallocateAllocateAllocateAlcocateExactMemoryForements,OfferingPrediCtableSageButlessemageButlesseflextlessibility。

Inpython,YouCansspecthedatatAtatatPeyFelemereModeRernSpant.1)Usenpynernrump.1)Usenpynyp.dloatp.dloatp.ploatm64,formor professisconsiscontrolatatypes。

NumPyisessentialfornumericalcomputinginPythonduetoitsspeed,memoryefficiency,andcomprehensivemathematicalfunctions.1)It'sfastbecauseitperformsoperationsinC.2)NumPyarraysaremorememory-efficientthanPythonlists.3)Itoffersawiderangeofmathematicaloperation

Contiguousmemoryallocationiscrucialforarraysbecauseitallowsforefficientandfastelementaccess.1)Itenablesconstanttimeaccess,O(1),duetodirectaddresscalculation.2)Itimprovescacheefficiencybyallowingmultipleelementfetchespercacheline.3)Itsimplifiesmemorym

SlicingaPythonlistisdoneusingthesyntaxlist[start:stop:step].Here'showitworks:1)Startistheindexofthefirstelementtoinclude.2)Stopistheindexofthefirstelementtoexclude.3)Stepistheincrementbetweenelements.It'susefulforextractingportionsoflistsandcanuseneg

numpyallowsforvariousoperationsonArrays:1)basicarithmeticlikeaddition,减法,乘法和division; 2)evationAperationssuchasmatrixmultiplication; 3)element-wiseOperations wiseOperationswithOutexpliitloops; 4)

Arresinpython,尤其是Throughnumpyandpandas,weessentialFordataAnalysis,offeringSpeedAndeffied.1)NumpyArseNable efflaysenable efficefliceHandlingAtaSetSetSetSetSetSetSetSetSetSetSetsetSetSetSetSetsopplexoperationslikemovingaverages.2)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Atom编辑器mac版下载
最流行的的开源编辑器