python中的基本数据类型之字典
一.字典的简单介绍
字典是(dict)是python中惟一的一个映射类型,他是以{}括起来的键值对组成,在字典中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存保存在这个地址中,这种算法被称为hash算法,所以在字典中存储的key-value必须是可合适 hash的,(可以改变的都是不可hash的,hash意味着不可变)这是为了能够准确的计算内存地址而规定的.
不可变的数据类型:int,str,tuple,bool
可变的数据类型:list,dict,set
value没有要求,可以保存任意类型的数据.
dic={132:45,True:999,'ig':1,(1,2,3):'nje'}
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
语法:{key1:value1,key2:value2......}
dic={132:45,True:999,'ig':1,(1,2,3):'nje'}
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
二,字典的增删改查和其他操作
1.增加
1.1 dic['key']='value'
dic={132:45,True:999,'ig':1,(1,2,3):'nje'}
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
1.2
⑴dic.setdefault('key') #往字典里添加一个key,value默认为None,如果key已经存在,不会起任何作用
⑵dic.setdefault('key','value') #往字典里添加一个key-value
dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
dic.setdefault('李嘉诚')
print(dic)
#{132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje', '李嘉诚': None} #(1)
dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
dic.setdefault('李嘉诚','房地产')
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje', '李嘉诚': '房地产'} #(2)
dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
dic.setdefault(132,'房地产')
print(dic)
# {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'} #如果key已经存在,不会起任何作用
2.删除
2.1 dic.pop('key')
dic.pop('key')
dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
ret=dic.pop(132) #通过key删除 返回被删除的value
print(ret) #如果key不存在会报错
print(dic)
#
# {True: 999, 'ig': 1, (1, 2, 3): 'nje'}
2.2 del dic['key']
dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
del dic[132]
print(dic)
# {True: 999, 'ig': 1, (1, 2, 3): 'nje'}
2.3 dic.popitem()
dic = {132: 45, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
del dic[132]
print(dic)
# {True: 999, 'ig': 1, (1, 2, 3): 'nje'}
2.4 dic.clear()
dic = {132: 45, True: 999, 'ig': 1,132:'gu',(1, 2, 3): 'nje'}
dic.clear()
print(dic)
# {} #得到的是一个空的字典
3.修改
3.1
dic[key]=value 强制修改
dic = {132: 45, True: 999, 'ig': 1,132:'gu',(1, 2, 3): 'nje'}
dic[132]=789
print(dic)
# {132: 789, True: 999, 'ig': 1, (1, 2, 3): 'nje'}
3.2 dic1.update(dic)
dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
dic1={1:'a',2:'b',132:46}
dic.update(dic1) #把dic 1中的内容更新到dic中,如果key重复,则修改替换,如果key不存在,就新增.
print(dic)
# {132: 46, '地方规划局': 999, 'ig': 1, (1, 2, 3): 'nje', 1: 'a', 2: 'b'}
4.查
4.1 dic.get(key)
dic.get(key)
dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
print(dic.get(13,'好像虎')) #找不到key返回None,或者指定返回内容
#好像虎
4.2 dic[key]
dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
print(dic[132]) #
print(dic[12]) #KeyError: 12 没有这个键的时候查询会报错
4.3 for循环
dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
for i in dic: #循环默认是去字典中的键
print(i)
#
# 地方规划局
# ig
# (1, 2, 3)
5.字典的其他操作
5.1 keys();values();items()
dic = {132:45, '地方规划局': 999, 'ig': 1,(1, 2, 3): 'nje'}
print(dic.keys()) # (高仿列表) 高仿列表暂时可以当做真的列表用,也可以迭代
print(dic.values()) # (高仿列表)
print(dic.items()) #也是高仿的列表,只不过里面装的是元组
# dict_keys([132, '地方规划局', 'ig', (1, 2, 3)])
# dict_values([45, 999, 1, 'nje'])
# dict_items([(132, 45), ('地方规划局', 999), ('ig', 1), ((1, 2, 3), 'nje')])
5.2 解构(解包)
a,b = '' #将后边解构打开按位置赋值给变量 支持 字符串 列表 元组
print(a)
print(b)
#
# dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
for a,b in dic.items():
print(a)
print(b)
# 易大师
# 剑圣
# 剑豪
# 托儿所
# 草丛伦
# 大宝剑 dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
for key,value in dic.items():
print(key,value)
# 易大师 剑圣
# 剑豪 托儿所
# 草丛伦 大宝剑
三,字典的嵌套
dic = {'name':'汪峰','age':43,'wife':{'name':'国际章','age':39,'salary':100000},'baby':[{'name':'熊大','age':18},{'name':'熊二','age':15},]}
dic['baby'][0]['age'] = 19
print(dic)
python中的基本数据类型之字典的更多相关文章
- python中不可变数据类型和可变数据类型
在学习python过程中我们一定会遇到不可变数据类型和可变数据类型. 1.名词解释 以下所有的内容都是基于内存地址来说的. 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址 ...
- python中的特殊数据类型
一.python中的特殊数据类型 对于python,一切事物都是对象,对象基于类创建.像是“wangming”,38,[11,12,22]均可以视为对象,并且是根据不同的类生成的对象. 参照:http ...
- 1. Python中的基本数据类型、运算、变量
本文利用的是Python 3.x版本,建议学习3.x版本 Python中的基本数据类型.运算.变量 1. 基本数据类型 1.1 整数 py可以处理任意大小的整数,例如123,1234567891324 ...
- Python中列表,元组,字典,集合的区别
参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...
- python中的常用数据类型
python中的常用数据类型 以下是个人总结的python中常见的数据类型,话不多说,我们直接步入正题: 数字类型 整型类:int类可以表示任意大小的整数值,在python中没有像JAVA或者C那样的 ...
- Python中多个列表与字典的合并方法
Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['] b = ['] a += b print(a) >>>['] 2) a.extend(b) a=[' ...
- Python中的基本数据类型之列表与元组初步了解
一.什么是列表 1.列表是Python中的基本数据类型之一用[]来表示,每一项元素由逗号隔开,列表什么都能装,(能装对象的对象) 2.可以用来存放大量数据 3.是一个可以改变的数据类型 二.列表的索引 ...
- Python中使用item()方法遍历字典的例子
Python中使用item()方法遍历字典的例子 这篇文章主要介绍了Python中使用item()方法遍历字典的例子,for...in这种是Python中最常用的遍历字典的方法了,需要的朋友可以参考下 ...
- python中元组、列表、字典、集合知识
像列表一样处理字符串: 仅需要看字符串的首字符就知道如何处理该字符串的情况也很常见.例如,如果有一个姓与名的列表,您可以使用与列表相同的语法查看名与姓的第一个字符.这种看待字符串的方法叫做分片(sli ...
随机推荐
- URAL 1684. Jack's Last Word KMP
题目来源:URAL 1684. Jack's Last Word 题意:输入a b 把b分成若干段 每一段都是a的前缀 思路:b为主串 然后用a匹配b 记录到b的i位置最大匹配的长度 然后切割 切割的 ...
- 使用elasticsearch遇到的一些问题以及解决方法(不断更新)
7.org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response fro ...
- 一句话的设计模式(JAVA版)
·结构型模式: o适配器:用来把一个接口转化成另一个接口,如 java.util.Arrays#asList(). o桥接模式:这个模式将抽象和抽象操作的实现进行了解耦,这样使得抽象和实现可以独立地变 ...
- 在嵌入式程序中QT去掉鼠标指针
在像arm的QT编程当中,一般都是使用触摸来操作,当是我们运行程序的时候会发现总是有个鼠标箭头在那里,下面介绍种方法将其给去掉.这样就漂亮多了.在main()函数加入 #include <QWS ...
- wpf控件设计时支持(3)
原文:wpf控件设计时支持(3) wpf设计时调试 编辑模型 装饰器 1.wpf设计时调试 为了更好的了解wpf设计时框架,那么调试则非常重要,通过以下配置可以调试控件的设计时代码 (1)将启动项目配 ...
- c语言bit倒置最好的算法-离msb-lsb至lsb-msb
问题 什么是例如最好的算法,下面的转换? 0010 0000 => 0000 0100 从详细的转换MSB->LSB至LSB->MSB, 所有的Bit必须扭转,着.这并非字节顺序的交 ...
- qt线程(转)----这篇很专业!
本文档是自己所整理的一份文档,部分是原创,还转贴了网上的一此资料(已经标明了),(难点是多线程的编写),是有源代码的,大家可以作为参考,用到的知识是视频采集,压缩解压(xvid),实时传输(jrtp) ...
- WPF异常捕获,并使程序不崩溃!
原文:WPF异常捕获,并使程序不崩溃! 在.NET中,我们使用try-catch-finally来处理异常.但,当一个Exception抛出,抛出Exception的代码又没有被try包围时,程序就崩 ...
- Shuttle ESB(六)——在工程中的应用
假设你可能浏览在前面几篇文章ESB介绍,我相信,在这篇文章中,你会发现很多共鸣. 虽然.市面上开源的ESB确实很之多.像Java中的Mule ESB.Jboss ESB:.Net中的NServiceB ...
- WPF - Group分组对ListBox等列表样式的约束
原文:WPF - Group分组对ListBox等列表样式的约束 在做WPF主题支持时,出现一个分组引起的莫名错误,可是折腾了我一番.在没有使用样式时,列表分组很正常,使用了别人写的ListBox列表 ...