Python:dict字典
#字典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}
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'}
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1.pop('二哥','none')
print(dic1.pop('二哥','none'))
print(dic1)
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1_pop1 = dic1.popitem() # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
print(dic1_pop1) #('age', 18)
dic_clear = dic.clear() # 清空字典
print(dic,dic_clear) # {} None
del dic1["name"] # 没有返回值。 print(dic1)
(3)改
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]
v1 =dic1['name']#找出了对应的值 print(v1) #缺点如果没有对应的值会报错。
5.get
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字典的更多相关文章
- [Python] dict字典的浅复制与深复制
Python中针对dict字典有两种复制: (1)浅复制:利用 copy() 或者 dict() :复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict会受该操作影响 ...
- python dict 字典
字典是通过hash表的原理实现的,每个元素都是一个键值对,通过元素的键计算出一个唯一的哈希值,这个hash值决定了元素的地址,因此为了保证元素地址不一样,必须保证每个元素的键和对应的hash值是完全不 ...
- Python dict字典方法完全攻略(全)
我们知道,Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法,例如: >>> dir(dict)['clear', 'copy', ' ...
- Python - dict 字典常见方法
字典详解 https://www.cnblogs.com/poloyy/p/15083781.html get(key) 作用 指定键,获取对应值 两种传参 dict.get(key):键存在则返回对 ...
- Python - dict 字典的多种遍历方式
前置知识 for 循环详解:https://www.cnblogs.com/poloyy/p/15087053.html 使用 for key in dict 遍历字典 可以使用 for key in ...
- Python - DICT 字典排序 - OrderedDict
官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...
- python dict字典和set集合用法
创建字典:键 值 key value c = {'张三':59, '李四':60, '王五':100} #查 print(c['张三']) #打印张三的成绩 #改 c['张三'] = 60 # ...
- python dict字典添加元素
已存在的字典进行赋值操作 可为该字典添加新元素例子:a = {‘age’: 23, ‘name’: ‘lala}a[school] = ‘nanhaizhongxue’print a>>& ...
- python dict字典常用操作
字典的特性:key唯一无序 '''特性:key唯一:无序''' info = { 'stu1101': "安徽", 'stu1102': "北京", 'stu1 ...
- Python dict 字典 keys和values对换
原字典: d1 = { 'en':'英语', 'cn':'中文', 'fr':'法语', 'jp':'日语' } 经过相互对换: d1_inverse = {values:keys for keys, ...
随机推荐
- python 爬虫系列03--职位爬虫
职位爬虫 import requests from lxml import etree cookie = { 'Cookie':'user_trace_token=20181015184304-692 ...
- 让 framset 框架中的页面全屏显示
<script type="text/javascript"> window.onload=function(){ if(window.parent!=window){ ...
- poi 多行合并
poi做多行合并,一定需要先绘制单元格,然后写入数据,最后合并,不然各种坑啊. 合并单元格所使用的方法: sheet.addMergedRegion( CellRangeAddress cellRa ...
- repoquery详解——linux查看包依赖关系的神器
repoquery是yum扩展工具包yum-utils中的一个工具,所有如果你没有repoquery命令的话,可以先 sudo yum install yum-utils 安装yum-utils包.是 ...
- PHP中break及continue两个流程控制指令解析
<?php $arr = array( 'a' => '0a0', 'b' => '0b0', 'c' => '0c0', 'd' => '0d0', 'e' => ...
- thinkphp执行流程
1. 入口文件index.php 用户对url的访问首先被定位到http://<serverIp>/<appName>/index.php, 这里的入口文件index.php做 ...
- java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE 的理解
[2013-12-06 11:06:21,715] [C3P0PooledConnectionPoolManager[identityToken->2tl0n98y1iwg7cbdzzq7a|7 ...
- js面向对象2
1.发展史 面向机器 面向过程:将程序的执行分解成若干个步骤 面向对象:将程序的执行分解成若干个事物 2.面向对象两个基本概念 类:代表某类事物,是抽象的 对象:代表某个事物,是具体的 3.快速入门 ...
- indexOf.substr,substring,charAt的区别
var a = "asdfghjkl" alert(a.substr(1, 3)); // 从下标为1开始,往右数3个长度的数, 显示 sdf; alert(a.s ...
- 监控节点 xml写入数据库 存储过程
USE [Appserver] GO /****** Object: StoredProcedure [AppServer].[ImportNodeRelationData] Script D ...