python数据类型:字典dict常用操作
2024-10-01 10:40:32
字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的:
Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的。
Value:任意数据(int,str,bool,tuple,list,dict,set),包括后面要学的实例对象等。
在Python3.5版本(包括此版本)之前,字典是无序的。
在Python3.6版本之后,字典会按照初建字典时的顺序排列(即第一次插入数据的顺序排序)。
当然,字典也有缺点:他的缺点就是内存消耗巨大。
优点:查询速度快,映射型数据
字典的常用操作:
增: dict['键']=值 无添加,有更改
dict.setdefault('键','值') 无添加,有不变,且返回原来的值
有返回值:dict.setdefault('键')
如果键存在,返回键对应的值
如果键不存在,则给字典添加这个键,他的值为None,且返回none
删: dict.pop['键'] 删除字典中的键值对,并返回删除的值(如果键不存在报错key Error)
如果没有这个键,可以设置返回值,dict.pop['',dddd] 不会报错,返回dddd
dict.popitem() 3.5版本前随机删除一个键值对
3.6版本后默认删除最后一对,返回一个元祖,字符串逗号分割,字典空了再删报错
del dict['键'] 没有返回值,直接对字典操作 当键不存在时报错
del dict 删除字典
dict.clear() 清空字典
改: dict['键']=值 无则添加,有则修改
update
dict.update(键='值',键='值') 添加键值对,以有的键会更改值
dict1.update(dict2) 把字典2添加到字典1,有相同的键,2会覆盖1的值
查: dict['键'] 返回键对应的值(没有键会报错)
dict.get('键','返回值') 键存在的情况下,返回值,不存在返回提示返回值
dict.keys() 返回字典键组成的列表包含于括号中----dict.keys(['键1','键2']) 类似列表 可用list强转
dict.values() 返回字典的值组成的列表包含于括号中-----dict.value('值1'.'值2') 类似列表
dict.items() 返回 dict_items([('', 11), ('', 22), ('j', 212)]) 可用dict强转为字典
分别赋值
a,b=1,2 #分别给a,b赋值
print(a,b)
a,b=b,a #同样再做赋值
print(a,b)
a,b,c =(1,2,3) #同数目的变量赋值同长度元祖元素
print(a,c)
a,b=[100,101] #同数目的变量赋值同长度的列表元素
print(a,b)
# 赋值:用相同数目的变量分别赋值类似的结构类型中的元素
# 我们可以试着给用在字典中:
# k,v={'1':11}
# print(k,v)
# 这样会报错,因为字典只能赋值到键,所以我们用dic.items()
for k,v in dic.items():
print(k,v) #返回字典的每一对键,值
dict.fromkeys('键为可迭代对象','值')
创键一个字典,字典的键为可迭代对象的每一个元素,值都时相同的
最新文章
- 启用 Open vSwitch - 每天5分钟玩转 OpenStack(127)
- 解决VMware虚拟机宿主机与虚拟机通讯慢
- iOS开发需要哪些图片?
- Hello Mybatis 04 使用spring-mybatis
- iOS学习09C语言函数指针
- 使用WIF实现单点登录Part IV —— 常见问题
- xml &;amp; 符号表示方法,xml转义字符
- C++ Const成员函数
- GCD实现简单的单例类-Singletion
- jsp实现上一页下一页翻页功能
- Tornado介绍及自定义组件
- For in + 定时器
- 基于Web的漏洞利用
- linux之sed的使用
- Linux下Shell的for循环语句
- MTIM(中间人攻击)
- Soa思想分布式服务webservice WCF
- 8 -- 深入使用Spring -- 1...3 容器后处理器
- Linked dylibs built for GC-only but object files built for retain/release for architecture x86_64
- 使用Properties类和ResourceBundle类读取properties文件
热门文章
- ant安装报错:ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
- 添加新网络模型后运行报错:未定义的参数:ps_roipooling param
- MySQL主从复制延迟的问题 #M1002#
- Java面试题和解答(三)
- boost中打印python中的变量
- yum 运行失败
- ios APNS注册失败 本地push
- Docker:从头开始基于CentOS-Minimal安装Docker
- 短信利用weixin://connectToFreeWifi/?apKey=协议跳转到微信打开落地页h5
- locust压测rpc协议