#字典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. PIE SDK 坐标系创建、定义、对比

    1.    坐标系创建 1.1    从WKT字符串导入空间参考 ISpatialReference接口是一个任何空间参考对象都实现的接口,它包含了所有空间参考对象都公有的方法和属性,如获得空间参考对 ...

  2. NFS 网络文件系统

    1, NFS存储服务概念介绍    NFS是Network File System的缩写,中文意思是网络文件系统,    它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录  ...

  3. 97 条 Linux 运维工程师常用命令总结[转]

    1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出 ...

  4. 实现类似tail -f file功能

    python版本py3 tail -f file是打印最后10行,然后跟踪文件追加的内容打印出来. python3 以为本方式打开的话,不能回退(f.seek(-1,1)),所有以'rb'方式打开文件 ...

  5. 东拼西凑 vim配置-更新

    "============================================================= "========================== ...

  6. B站视频下载(VideoHelper)

    继续上次的知乎爬虫, 这次开始了哔哩哔哩的爬虫实践: 首先介绍下如何下载吧: VideoHelper 里面有三种方式下载b站视频. 同样的流程, 还是先抓包,分析参数,寻找参数(包括之前的请求包和页面 ...

  7. javascript遍历表

    定义表结构 1. 通过id遍历 <html> <body> <table id="tb" border="1"> <t ...

  8. model操作涉及的所有字段(API)

    一旦 数据模型 创建完毕, 自然会有存取数据的需要.本文档介绍了由 models 衍生而来的数据库抽象API,及如何创建,得到及更新对象. 贯穿本参考, 我们都会引用下面的民意测验(Poll)应用程序 ...

  9. 如何恢复sqlserver误删除的数据(摘)

    一.借助第三方工具 1.sqlserver2005: Log Explorer http://www.cnblogs.com/whitney/archive/2008/08/22/1273879.ht ...

  10. Linux 启动SVN服务

    #使用默认端口3690启动svn服务svnserve -d -r /home/svndata # 如果出现#svnserve: Can't bind server socket: Address al ...