python字典数据结构的详解

本文详细介绍了Python中字典的基本概念、创建方式、获取方法、常用操作及特点等,并通过实例帮助理解字典的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、是什么

字典是一个无序、可变和有索引的集合。在 Python 中,字典用“{}”编写,以键值对出现。

  例:                           dec = {'张三':75,' '小华':98, '李四':84}

 dec —》字典名(自定义)   '张三'—》键    75—》值   “ :”—》键与值分隔     “,” —》每一个键值对的分隔 

原理:根据key(哈希值)查找value所在位置

二、创建

        1,使用{}

dec = {'张三':85, '王五':75, '小华':89}

        2.使用内置函数dict()

dict(name = 'cor', age = 23)

【注】如果键相同时,会输出最后一个键相同的值(覆盖)。

三、获取

        1.“[ ]”

dec = {'张三':85, '王五':75, '小华':89}
num = dec['张三']
print(num)

85

 2.get()方法

dec = {'张三':85, '王五':75, '小华':89}
num = dec.get('小华')
print(num)

 89

【区别】1.[ ]字典中不存在时指定key,会抛出:keyEerror

                2.get()方法取值,字典中不存在时会返回None,可以通过参数设置默认value,以便指定的key不存在时返回。

dec = {'张三':85, '王五':75, '小华':89}
1.print(dec.get('小米'))
2.print(dec.get('小米',100))

 None

100

【注】get()方法:在字典没有找到指定的key,将会返回自定义的参数,否则返回字典中指定key,的value。

四、操作

1.是否在

dec = {'张三':85, '王五':75, '小华':89}
print('张三' in dec)
print('张三' not in dec)

True

Flase

2. 删除

dec = {'张三':85, '王五':75, '小华':89}
del dec['张三']
print(dec)

 { '王五':75, '小华':89}

3.新增

dec = {'张三':85, '王五':75, '小华':89}
dec['小米']=100
print(dec)

{'张三':85, '王五':75, '小华':89,'小米’:100} 

4.修改

dec = {'张三':85, '王五':75, '小华':89}
dec['小米] = 120
print(dec)

{'张三':85, '王五':75, '小华':89,'小米’:120}  

五、视图

1.keys()获取字典中所以的键

dec = {'张三':85, '王五':75, '小华':89}
tmp = dec.kyes()
print(list(tmp),type(tmp)
['张三', '王五', '小华'] <class 'dict_keys'

 2.values()获取字典中所以的值

dec = {'张三':85, '王五':75, '小华':89}
tmp = dec.values()
print(list(tmp),type(tmp)

 [85, 75, 89]     <class 'dict_values'

3.items() 获取字典中所以的键值对

dec = {'张三':85, '王五':75, '小华':89}
tmp = dec.items()
print(list(tmp),type(tmp)

 ['张三':85, '王五':75, '小华':89] <class 'dict_items'

 【注】list( )函数作用转换为列表

六、遍历

for tup in dec:
   print(tup,dec[tup],dec.get(tup))

张三 85 85

王五 75 75

小华 89 89

【注】tup时变量,接受字典中的键 

七、生成式

num = ['小米', 'C罗', '李四']
ed = [45, 39, 60]
dec = {item : price for item,price in zip(num,ed)}
print(dec)

{'小米':45, 'C罗':39,'李四':60} 

【注】1.zip( ) 函数,合成字典数据结构。(假如num与ed的数量不一致,按数量少的算)

           2.num是键的列表,ed是值的列表

八、特点

        1.键不可以重复,否则会被后面的覆盖。

        2.元素无序(无法指定位置插入元素)

        3.key必须是不可变对象

        4.可以根据需要动态伸缩

        5.会浪费大量内存,是一种使用空间换时间的数据结构

        6.不会根据创建时间顺序,放置在内存的先后顺序(如下图)

 

        

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值