#字典dict-------》唯一的映射类型

1、数据类型的划分

数据类型划分为可变数据类型和不可变数据类型。

不可变数据类型:tupe(元组)、bool、int、str           可哈希

可变数据类型:list、dict、set(集合)                 不可哈希

dict(key,value)中: key必须是不可变数据类型

          value可以是任意数据类型

2、dict的优点及特点

优点:用二分查找去查询。存储大量的关系型数据

特点:无序(3.5版本及之前的版本特点)

3、dict类型的增删改查

dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}

(1)增

1.dic['name'] = 值

    

dic1['high'] =185
print(dic1)

#结果为:{'sex': 'male', 'age': 18, 'name': 'jin', 'k': 'v', 'high': 185}

2、#setdefault
dic1.setdefault('weirht')#不写value的话,会默认为none
print(dic1)

#结果为:

{'sex': 'male', 'age': 18, 'k': 'v', 'weirht': None, 'name': 'jin'}

dic1.setdefault('weirht',150)
print(dic1)

#结果为:

{'weirht': 150, 'sex': 'male', 'name': 'jin', 'k': 'v', 'age': 18}

####如果增加的时候原来的dic有这个键值对,键值那么不做任何改变,没有才添加####

dic1内的元素会随机排列。

dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1.setdefault('weirht',150)
print(dic1)
#{'k': 'v', 'weirht': 120, 'name': 'jin', 'sex': 'male', 'age': 18}

(2)删

1.pop

dic1.pop('age')
print(dic1)

#结果为:

{'k': 'v', 'weirht': 120, 'name': 'jin', 'sex': 'male'}

#pop在dict中有返回值,按键去删除
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1.pop('二哥','none')
print(dic1.pop('二哥','none'))
print(dic1)
#dic1.pop('二哥','没有此键/none') 可以自定义返回值。
#可设置返回值,按照键去删除,如果键在字典里没有,会报错。
2.popitem会随机删除。有返回值,返回的是元祖,删除的键值。
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1_pop1 = dic1.popitem()  # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
print(dic1_pop1)  #('age', 18)
 
3.clear
清空字典
dic_clear = dic.clear()  # 清空字典
print(dic,dic_clear)  # {} None
4.del
可以删除键值对,也可删除整个字典。没有返回值。如果没有会报错。
del dic1["name"]  # 没有返回值。
print(dic1)

(3)改

1、dic1['high'] =185,直接覆盖也叫做改
2、update
将一个字典中另一个字典没有的内容,覆盖添加到另一个字典中。
dic = {'name':'jin','age':18,'sex':'male'}
dic2 = {'name':'alex','weirht':75}
dic2.update(dic)
print(dic)
print(dic2)

dic:{'sex': 'male', 'name': 'jin', 'age': 18}
dic2:{'weirht': 75, 'sex': 'male', 'name': 'jin', 'age': 18}

(4)查

1.

print(dic1.keys())      什么也不写默认打印键
print(dic1.values())      打印值
print(dic1.items())     打印键值对
2.for                           结果:for i in dic2:                                        weirht    print(i)                                         name

3.分别赋值

a,b = 1,2
print(a,b)
#a =1
  b =2

3.1  b =2用一行代码互换a,b的值(面试题)

a,b = 1,2

a,b = b ,a
print(a,b)

#a,b =[1,2]#print(a,b)----->[1,2]

3.2

a,b = [1,2],[3,4]
print(a,b)
#------>[1,2],[3,4]
4.dic['name']
 
v1 =dic1['name']#找出了对应的值
print(v1)
#缺点如果没有对应的值会报错。

5.get

dic1.get('name1')
print(dic.get('name1'))#如果没有对应的值会默认返回none。
可以自定义设置返回值。
dic = {'name':'jin','age':18,'sex':'male'}
value2 = dic.get("djffdsafg","没有返回值")  # 没有,可以返回设定的返回值
print(value2)

(5)嵌套

dic={
'name':['alex','wusir','taibai'],
'py9':{
',
'learn_money':19800,
'address':'CBD'
}
'age':21
}
dic['age'] = 56
dic['name'].append('')

Python:dict字典的更多相关文章

  1. [Python] dict字典的浅复制与深复制

    Python中针对dict字典有两种复制: (1)浅复制:利用 copy() 或者 dict() :复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict会受该操作影响 ...

  2. python dict 字典

    字典是通过hash表的原理实现的,每个元素都是一个键值对,通过元素的键计算出一个唯一的哈希值,这个hash值决定了元素的地址,因此为了保证元素地址不一样,必须保证每个元素的键和对应的hash值是完全不 ...

  3. Python dict字典方法完全攻略(全)

    我们知道,Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法,例如: >>> dir(dict)['clear', 'copy', ' ...

  4. Python - dict 字典常见方法

    字典详解 https://www.cnblogs.com/poloyy/p/15083781.html get(key) 作用 指定键,获取对应值 两种传参 dict.get(key):键存在则返回对 ...

  5. Python - dict 字典的多种遍历方式

    前置知识 for 循环详解:https://www.cnblogs.com/poloyy/p/15087053.html 使用 for key in dict 遍历字典 可以使用 for key in ...

  6. Python - DICT 字典排序 - OrderedDict

    官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...

  7. python dict字典和set集合用法

    创建字典:键  值  key  value c = {'张三':59, '李四':60, '王五':100} #查 print(c['张三'])  #打印张三的成绩 #改 c['张三'] = 60 # ...

  8. python dict字典添加元素

    已存在的字典进行赋值操作 可为该字典添加新元素例子:a = {‘age’: 23, ‘name’: ‘lala}a[school] = ‘nanhaizhongxue’print a>>& ...

  9. python dict字典常用操作

    字典的特性:key唯一无序 '''特性:key唯一:无序''' info = { 'stu1101': "安徽", 'stu1102': "北京", 'stu1 ...

  10. Python dict 字典 keys和values对换

    原字典: d1 = { 'en':'英语', 'cn':'中文', 'fr':'法语', 'jp':'日语' } 经过相互对换: d1_inverse = {values:keys for keys, ...

随机推荐

  1. spark第六篇:Spark Streaming Programming Guide

    预览 Spark Streaming是Spark核心API的扩展,支持高扩展,高吞吐量,实时数据流的容错流处理.数据可以从Kafka,Flume或TCP socket等许多来源获取,并且可以使用复杂的 ...

  2. (转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加

    通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 , ...

  3. 诠释JavaScript中的this

    文章首发:http://www.cnblogs.com/sprying/p/3573456.html 使用this的几种场合 1. 执行函数时,判断函数是对象方法还是一个单独的函数?单独的函数this ...

  4. java中面向对象的三大特性小结

    java中面向对象的三大特性:封装.继承.多态 封装 把抽象的数据和对数据的操作封装在一起,隐藏变量的实现细节.数据被保护在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行访问. 1 ...

  5. 7、侧边栏:Menu

    1.单个侧边栏 导航的代码在分析源码的时候已经分析过了,下面只看他的一些应用与方法. /* ---示例代码----*/ <ion-menu [content]="mycontent&q ...

  6. CheckBox 样式

    .cb td {             width: 100px;         } .cb label {             display: inline-block;          ...

  7. IDEA+Maven+多个SpringBoot子模块(创建多模块整合项目)

    https://blog.csdn.net/willjgl/article/details/77773634 https://blog.csdn.net/qqHJQS/article/details/ ...

  8. js简单时分秒倒计时

    效果: javascript: <script type="text/javascript"> function countTime() { //获取当前时间 var ...

  9. Windows 10:开机显示C:\WINDOWS\system32\config\systemprofile\Desktop不可用 的解决方法

    今晨起来开机,开完机一看,弹出啦一个框框上面写着“C:\WINDOWS\system32\config\systemprofile\Desktop不可用...” 当我点击了确定之后,发现屏幕一片黑,只 ...

  10. OAuth2.0 入门与进阶

     一.基础知识 1.OAuth产生背景 很多网站.APP 弱化甚至没有搭建自己的账号体系,而是直接使用社会化登录的方式,这样不仅免去了用户注册账号的麻烦.还可以获取用户的好友关系来增强自身的社交功能. ...