字典

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

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

可变数据类型:列表list,字典dict     又叫不可哈希

不可变数据类型: 元祖,bool值,数字int,字符型str            本身不可变,又叫可哈希

key  键,必须是不可变类型,可哈希

value 值,任意数据类型

创建空字典使用 { }

字典dict优点:

      1,用二分法查询,查询速度快

      2,储存大量的关系型数据

字典dick特点:

      字典dict是无序的。(3.5及之前的字典dict是无序的)

简写为dic

dic = {
'name':'xiaoming',
'age':18,
'num':[1,2,3,'alex'],
's1':{'xiao':'han','gh':[1,2,3,4]},
'qq':123
}
print(dic) 结果 {'name': 'xiaoming', 'age': 18, 'num': [1, 2, 3, 'alex'], 's1': {'xiao': 'han', 'gh': [1, 2, 3, 4]}, 'qq': 123}

,两种方法(注意与列表list区别)

直接加,如果没有对应键值,则直接加在后面。如果有对应键值,则进行覆盖。
dic1 ={'name':'xiaojun'}
dic1['height'] = 180
print(dic1)
dic.setdefault('')  形式,有对应键值,则不做任何修改。没有对应键值,后面默认加None
dic = {
'name':'xiaoming',
'age':18,
'num':[1,2,3,'alex'],
's1':{'xiao':'han','gh':[1,2,3,4]},
'qq':123
}
dic.setdefault('weighe') print(dic)
dic.setdefault('weighe',180)  另一种形式
dic = {
'name':'xiaoming',
'age':18,
'num':[1,2,3,'alex'],
's1':{'xiao':'han','gh':[1,2,3,4]},
'qq':123
}
dic.setdefault('weighe',180) print(dic)
结果 {'name': 'xiaoming', 'age': 18, 'num': [1, 2, 3, 'alex'], 's1': {'xiao': 'han', 'gh': [1, 2, 3, 4]}, 'qq': 123, 'weighe': 180}

dic.pop(‘’)直接删
dic = {'name':'xiaoming','age':18}
dic.pop('age')
print(dic)
有返回值,返回被删除的键值
dic = {'name':'xiaoming','age':18}
s = dic.pop('age')
print(s)
结果18
可设置返回值,如果没有对应的被删键值,返回自己设定的值,就是下面的‘不错’
dic = {'name':'xiaoming','age':18}
s = dic.pop('aa','不错') #如果aa变成name,则返回小明
print(s)
结果 不错
dic.popltem()形式,随机删除一个,3.6版本默认删除最后一个

dic = {'aa':'xiaoming','age':18}
dic.popitem()
print(dic) 结果 {'aa': 'xiaoming'}
dic = {'aa':'xiaoming','age':18}  #这种,有返回值
print(dic.popitem())
结果 ('age', 18)
清空列表
dic = {'aa':'xiaoming','age':18}
dic.clear() print(dic) 结果 {}

直接改
dic = {'name':'xiaoming','age':18}
dic['age'] = 16
print(dic)
dic1.update(dic)覆盖增加,把dic覆盖增加到dic1中,
dic = {'name':'xiaoming','age':18}
dic1 ={'name':'xiaojun','height':180}
dic1.update(dic)
print(dic1)
dic和dic1中对应的键,则用dic的键值覆盖dic1的,dic没有与dic1中对应的减,则直接加入dic1中,dic1中多的键值,则直接保留
结果{'name': 'xiaoming', 'height': 180, 'age': 18}

dic['直接查']直接查,没有会报错
dic = {'name':'xiaoming','age':18}
print(dic["name"])
dic.get('high','设置返回的值‘)
dic = {'name':'xiaoming','age':18}
print(dic.get("high","默认返回值") ) # 没有可以返回设定的返回值
#print(dic.get('high')) 默认返回None
只打印键
dic = {'name':'xiaoming','age':18} = dic = {'name':'xiaoming','age';18}
for i in dic: = for i in dic.keys():
print(i) = print(i) 结果 name 结果 name
   age age
只打印值
dic = {'name':'xiaoming','age':18}
for i in dic.values():
print(i) 结果 xiaoming
18
a = 1
b = 2
a,b = b,a
print(a,b)
items  同时打印keys 和 valuces
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for i in dic.items():
print(i)

python基础类型—字典的更多相关文章

  1. python基础类型(字典:dict)

    字典的介绍: 字典(dict)Python中唯一的一个映射类型.他是以{}括起来的键值对组成,在dict中key是唯一的.在保存的时候,根据key来计算出一个内存地址,然后将key-value保存到这 ...

  2. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  3. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  4. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  5. Python基础知识---字典

    现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典:  key --> valu ...

  6. python基础类型,字符串

    python基本类型小结 # str,可以用索引取值,但是不能通过索引改变值, # a = "123" a[0]=10,直接TypeError因为字符串是不可变类型 # list, ...

  7. 5、Python 基础类型 -- Dictionary 字典类型

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d ...

  8. python基础5 字典

    一.字典 字典是python的基础数据类型之一:字典可以存储大量的数据,关系型数据. 同样他也是python中唯一的映射类的数据类型. 数据类型的分类: 可变的(不可哈希)数据类型:list,dict ...

  9. python基础_字典_列表_元组考试_day4

    1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...

随机推荐

  1. EBS WEBADI 下载模板提示 Visual Basic 运行时错误 '91' 对象变量或With块变量未设置

    按以下的方法设置一遍EXCEL,并设置浏览器的安全属性.

  2. SpringDataJpa学习

    # SpringBoot Jdbc JPA JPA是`Java Persistence API`的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的 ...

  3. Add Columns to the Web Sessions List

    To add custom columns to the Web Sessions List, add rules using FiddlerScript. The BindUIColumn Attr ...

  4. CentOS7配置防火墙

    使用命令的方式配置 ##Add firewall-cmd --permanent --zone=public --add-port=/tcp ##Remove firewall-cmd --perma ...

  5. Android 实现登录界面和功能实例

    近期一个android小程序须要登录功能,我简单实现了一下.如今记录下来也当做个笔记,同一时候也希望能够相互学习.所以,假设我的代码有问题,还各位请提出来.多谢了! 以下.就简述一下此实例的主要内容: ...

  6. git变慢的原因

    最近使用git更新代码变慢,进一步试了一下提交代码.执行git命令都很慢,换了idea的工作目录.更换git版本,所有操作都是徒劳. 最后关了火绒杀毒软件,才快了起来. 坑坑坑坑坑的火绒杀毒!浪费我至 ...

  7. js 动态生成html 触发事件传参字符转义

    通常,在使用 JS 动态生成 html 的过程中,会嵌入相应的样式.事件等属性元素,而这时经常会出现所谓的 “单.双引号不够用” 的情况,别急,这时可以利用 html 语言中的转义字符来解决.下面就来 ...

  8. R语言学习-set.seed()

    今天查了一下R语言中set.seed(),该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性.如果不设定种子,生成的随机数无法重现. > x<-rnorm(10) #随机生成1 ...

  9. ###My SQL Date相关函数

    ###My SQL Date相关函数 #获得当前日期时间 select now(); #date_format(date,format) select date_format('2008-08-08 ...

  10. B2B相关编码说明

    B2B Cross reference Pre-Ordering enliteB2B RosettaNet EDIFACT ANSI X12 OAGIS iDOC Price Catalogue X ...