python学习6

本文详细介绍了Python字典的概念、创建方式、访问元素的方法、常用操作如增删改查,以及字典视图的获取。字典是无序的键值对集合,键必须是不可变对象,支持动态伸缩。此外,还介绍了字典生成式和遍历字典的方法,强调了字典在内存使用上的特性。
摘要由CSDN通过智能技术生成

字典概念及实现

字典是python内置的一种数据结构,与列表一样是一个可变序列

以键值对的方式存储数据,无序

在字典中,根据键来寻找值

创建字典时,字典用{}表示,其中键值对之间用 , 隔开,键与值用:连接

test={'name':'张三','age':10}

也可以使用内置函数dict()函数:

test=dict(name='张三',age=10)

获取字典元素

通过键来获取值

有两种方法,一是直接使用[],二是使用get()

test=dict(name='张三',age=10)
print(test['name'])
print(test.get('name'))
#get()方法设置默认值,使得查询的值不存在时返回默认值
#返回99
print(test.get('color',99))

这两种方法的区别是当想查询的值不存在时,[]方法返回ValueError错误,而get()方法返回None,并且可以通过设置默认值来规定这种情况下应该返回什么

对字典的常用操作

对键的判断

可以直接使用in来判断

test=dict(name='张三',age=10)
#输出True
print('name' in test)
#输出False
print('name' not in test)

删除

使用del()

也可以使用clear()清空字典

test=dict(name='张三',age=10)
#删除name='张三'
del(test['name'])
#输出{'age': 10}
print(test)
#清空字典,输出{}
test.clear()
print(test)

增加

可以直接通过在字典中给一个新的键赋值来增加一个新的键值对

test=dict(name='张三',age=10)
#增加color='red'
test['color']='red'
#输出{'name': '张三', 'age': 10, 'color': 'red'}
print(test)

修改

通过直接将键对应的值修改来修改

test=dict(name='张三',age=10)
#修改age为20
#输出{'name': '张三', 'age': 20}
test['age']=20
print(test)

获取字典视图

keys()

keys()函数用于获取字典中所有的键,返回的是dict_keys类型,可以将其转换为列表

test=dict(name='张三',age=10)
#输出dict_keys(['name', 'age']) <class 'dict_keys'>
print(test.keys(),type(test.keys()))
#将结果转换为列表
#得到['name', 'age']
lis=list(test.keys())
print(lis)

values()

values()函数用于获取字典中所有的值,返回的是dict_values类型,可以将其转换为列表

test=dict(name='张三',age=10)
#输出dict_values(['张三', 10]) <class 'dict_values'>
print(test.values(),type(test.values()))
#将结果转换为列表
#得到['张三', 10]
lis=list(test.values())
print(lis)

items()

items()函数用于获取字典中所有的键值对,返回的是dict_items类型,可以将其转换为列表,列表是由元组组成的。

test=dict(name='张三',age=10)
#输出dict_items([('name', '张三'), ('age', 10)]) <class 'dict_items'>
print(test.items(),type(test.items()))
#将结果转换为列表
#得到[('name', '张三'), ('age', 10)]
lis=list(test.items())
print(lis)

遍历字典元素

可以使用for-in结构

test=dict(name='张三',age=10)
#以下的循环都可以遍历字典,输出键值对
for key,value in test.items():
    print(key,value)

for key in test:
    print(key,test[key])

字典特点

字典中的元素都是键值对,其中键不能重复,值可以重复,并且元素是无序的

字典中的key必须是不可变对象,比如说不能用列表来当做键

字典可以根据需要动态伸缩

字典会浪费比较大的内存,是一种使用空间换时间的操作

字典生成式

生成字典的公式

内置函数zip():该函数用于将可迭代对象作为参数,将对象中对应的元素打包,形成元组

#使用zip()进行打包,再转换为列表
#得到[('name', 'lili'), ('age', 10)]
lis=list(zip(keys,values))
print(lis)

字典生成式的格式:{表示字典键的表达式:表示字典值的表达式 for 自定义表示键的变量,自定义表示值的变量 in zip(可迭代对象,可迭代对象)}

#得到{'name': 'lili', 'age': 10}
print({key:value for key,value in zip(keys,values)})

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值