博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础04 字典基本操作
阅读量:6481 次
发布时间:2019-06-23

本文共 2311 字,大约阅读时间需要 7 分钟。

一、前言

本文主要记录了Python学习过程中,基本数据类型字典dict的操作

二、字典dict

主要包括增、删、改、查的一些方法

字典是python中唯一的映射类型数据,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表之外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

直接添加

dic = {    'name': 'allen',    'age': 19,    'hobby': 'basketball'}dic['address'] = '北京'  # 有key则修改,无key则增加print(dic){'name': 'allen', 'age': 19, 'hobby': 'basketball', 'address': '北京'}

使用set.default()添加元素

dic = {    'name': 'allen',    'age': 19,    'hobby': 'basketball'}dic.setdefault('name','alex') #有key不修改,无则增加{'name': 'allen', 'age': 19, 'hobby': 'basketball'}dic.setdefault('tel','18888813694') #有key不修改,无则增加{'name': 'allen', 'age': 19, 'hobby': 'basketball', 'tel': '18888813694'}
dic = {    'name': 'allen',    'age': 19,    'hobby': 'basketball'}res = dic.pop('name')print(res)输出结果{'age': 19, 'hobby': 'basketball'}res = dic.pop('address','没有此key') # 没有此key时不报错print(res){'name': 'allen','age': 19, 'hobby': 'basketball'}

dic.popitem() # 随机删除,有返回值

dic.clear() # 清除字典中的元素
del dic # 删除字典

dic = {    'name': 'alex',    'age': 19,    'hobby': 'basketball',}dic1 = {    'address': 'beijing',    'age': 25,    'tel': '17888813693',}dic['age]=20print(dic)结果:{    'name': 'alex',    'age': 19,    'hobby': 'basketball',}dic.upate(dic1) # dic1中有和dic相同的key,修改dic中元素value,不相同key的item添加到dic中{'name': 'alex', 'age': 25, 'hobby': 'basketball', 'address': 'beijing', 'tel': '17888813693'}
dic = {    'name': 'alex',    'age': 19,    'hobby': 'basketball',}print(dic['name'])  #alexprint(dic['sex'])   # 由于找不到key会报错res = dic.get('sex', '男') # 不会报错,找不到返回默认的

字典的遍历

dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'name': 'alex'}

for i in dic:     print(i)# 打印的是key    k1k2k3name
for i in dic.keys():     print(i)# 打印的是key    k1k2k3name
for i in dic.values():     print(i)# 打印的是值v1v2v3alex
for i in dic.items():     print(i)# 打印的是key-value键值对    ('k1', 'v1')('k2', 'v2')('k3', 'v3')('name', 'alex')

需要注意点:

1、遍历字典时,最好不要改变字典的大小
2、fromkeys(l,value)将可迭代对象各个元素作为key,将value作为各个key的值,返回一个字典

dic = dict.fromkeys('abc', 666)print(dic){'a': 666, 'b': 666, 'c': 666}
dic = dict.fromkeys('abc', [])# 坑dic['a'].append(666)print(dic){'a': [666], 'b': [666], 'c': [666]}

转载于:https://www.cnblogs.com/suxianglun/p/9037215.html

你可能感兴趣的文章
memcache数据库和redis数据库的区别(理论)
查看>>
第三十九天
查看>>
论程序员加班的害处
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
再次更新
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>
开篇,博客的申请理由
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
iOS项目分层
查看>>
IntelliJ IDEA 注册码
查看>>
String字符串的截取
查看>>
Shell编程-环境变量配置文件
查看>>
Struts2和Spring MVC的区别
查看>>
git代码冲突
查看>>
git bash 风格调整
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
190行代码实现mvvm模式
查看>>
兼容几乎所有浏览器的透明背景效果
查看>>