python:数据类型dict
一、字典
key -->value 储存大量数据,而且是关系型数据,查询速度非常快
数据类型分类:
可变数据类型:list , dict, set
不可变的数据类型:int , bool, str, tuple
字典的键:不可变数据类型
字典的值:任意数据类型
hash哈希
可变数据类型(不可哈希):list , dict,set
不可变数据类型(可哈希):int , bool, str ,tuple
增
第一种 有则覆盖,没有就添加
dic = {"name":"jin",
"age":18,
"sex":"male"
}
dic['hobby'] = 'girl'
print(dic)
dic['name'] = 'alex'
print(dic)
dic['hobby'] = 'love'
print(dic)
第二种 setdefault,无则添加,有则不变
dic = {"name":"jin",
"age":18,
"sex":"male"
}
dic.setdefault('work')
print(dic)
dic.setdefault('work','ps')
print(dic)
dic.setdefault('name')
print(dic)
删
pop有返回值(可以自己设置返回值)
dic = {"name":"jin",
"age":18,
"sex":"male"
}
print(dic.pop('age'))
print(dic.pop('name'))
print(dic.pop('hahah','None'))
print(dic.pop('name','没有此关键值'))#添加返回值为‘没有此关键字’
没有设置返回值,并且也没有该元素, 会报错
clear清空
dic = {"name":"jin",
"age":18,
"sex":"male"
}
dic.clear()
print(dic)
del删除
dic = {"name":"jin",
"age":18,
"sex":"male"
}
del dic
del dic['name']
print(dic)
del dic['work']
print(dic)
print(dic.popitem())#随机删除一对key--》value
print(dic)
查
dic = {"name":"jin",
"age":18,
"sex":"male"
}
print(dic['name'])
print(dic['work'])#没有,报错
print(dic['age'])
#print(dic('hobby1'))
print(dic.get('name'))
print(dic.get('name1','没有此贱'))#默认返回none,可以自己设置返回值
print(dic.get('name1'))
其他方法 key() values() items()
print(dic.keys())
print(dic.keys(),type(dic.keys()))
for i in dic.keys():#打印键
print(i) for i in dic:#打印键
print(i)
print(dic.values())
print(dic.values(),type(dic.values)) for i in dic.values():#将键值转化成列表,然后逐个打印
print(i)
print(dic.items()) for i in dic.items():#将键和值转化成列表中成对的元祖
print(i)
for k,v in dic.items():
print (k,v)
分别赋值
a, b = 2,3
print(a,b) a,b = (2,3)
print (a,b) a,b = [2,3]
print (a,b) a= 5
b = 4 a,b = b,a
print(a,b)
字典的嵌套
dic = {'name_list':['张三','lisi','隔壁王'],
'dic2':{'name':'太白','age':12}}
# 1 ,给列表追加一个元素:'旺旺'
dic['name_list'].append('汪汪')
print(dic)
# ,2,给列表lisi全部大写
dic['name_list'][1] = dic['name_list'][1].upper()
print(dic)
# 3,给dic2 对应的字典添加一个键值对:hobby:girl.
dic ['dic2']['sex'] = 'girl'
print (dic)
fromkey
对于可变的列表,内存地址指向的是列表,所以列表里面的内容改变,并不会引起对应值的改变
dic = dict.fromkeys(['barry','alex',],[])
print(dic)#{'barry': [], 'alex': []}
dic['barry'].append(666)
print(dic)#{'barry': [666], 'alex': [666]}
对于字符串,整型,指针直接指向的是元素的地址,所以元素改变,所对应的也会改变
dic = dict.fromkeys(['barry','alex'],66)
print(dic)#{'barry': 66, 'alex': 66}
dic['alex']= 1
print(dic)#{'barry': 66, 'alex': 1}
python:数据类型dict的更多相关文章
- Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...
- Python 数据类型及其用法
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...
- day01-day04总结- Python 数据类型及其用法
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...
- Python数据类型及其方法详解
Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...
- Python学习笔记(五)--Python数据类型-数字及字符串
Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- 1 Python数据类型--
常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...
- Python数据类型(python3)
Python数据类型(python3) 基础数据类型 整型 <class 'int'> 带符号的,根据机器字长32位和64位表示的范围不相同,分别是: -2^31 - 2^31-1 和 - ...
- Python数据类型的内置函数之list(列表)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) list(列表)的操作 - (append)在列表最后追加指 ...
- Python数据类型的内置函数之str(字符串)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) str(字符串)的一些操作 - 字符串相连方法 # 字符串的 ...
随机推荐
- mvn dependency:tree的用法
一.参考文档 https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-t ...
- 佛祖保佑永无BUG代码注释
// // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`---'\___ // .' \\| ...
- c#关于捕获错误的问题
一般捕获错误,采用try,catch,但是有时捕获的错误不明朗,完全不知道是什么错误,这是可以取消try,catch调试运行,找到错误后并修正后,再把try,catch加上.
- Go used as value问题
练习Go变参时遇到一个报错:used as value 代码如下: // 错误代码 func myfunc(arg ...int) { for _, n := range arg { fmt.Prin ...
- 数位dp讲解及模板
转载自:传送门 数位DP其实是很灵活的,所以一定不要奢求一篇文章就会遍所有数位DP的题,这一篇只能是讲清楚一种情况,其他情况遇到再总结,在不断总结中慢慢体会这个思想,以后说不定就能达到一看到题目就能灵 ...
- Saiku调用WS接口(十四)
Saiku调用WS接口 关于saiku集成系统单点登录告一段落,始终没想好怎么去做,主要是因为saiku有自己的权限定义,一直没想好关于saiku本身的权限信息以及用户信息怎么处理(在这里笔者希望已实 ...
- node.js学习一---------------------模块的导入
/** * 前端使用第三方包流程: * 导包:得到一个对象,所有对三方的API都是该对象的方法 * 使用包 * */ /** * 在node.js中叫做导模块 * 导模块:得到一个对象,所有第三方的A ...
- OO课程中IDEA相关插件的使用
写在前面 由于OO课程博客作业的需要分析代码的复杂度并绘制UML图,但是课件上推荐的分析工具(http://metrics.sourceforge.net )经过自己几个小时的折腾还是没有安装成功 ...
- 2019-04-10-day029-粘包处理
内容回顾 osi五层协议 不是真实存在的,只是抽象出来的模型 应用层 传输层 TCP/UDP TCP :全双工,可靠的,面向连接的,速度慢,对数据大小没有限制 建立连接 :三次握手 SYN ACK 断 ...
- 安装软件碰见error2502 2503
把鼠标放到Win8屏幕的最左下角,等待Win8 Metro界面的缩略图出现后点击鼠标右键,在弹出的菜单中选择“命令提示符(管理员)” 打开的“命令提示符(管理员)” 找到自己将要安装的程序路径 ...