Python基本数据结构之字典
定义:
{key1:value1,key2:value2}
1、键与值用冒号“:”分开;
2、项与项用逗号“,”分开;
示例:
dic4={
'name': 'xiaohu',
'age': 20,
'hobby': 'girl'
}
特性:
1、key-value结构
2、key必须为不可变数据类型、必须唯一
3、可存放任意多个value、可修改、可以不唯一
4、无序
查询速度快,且不受dict的大小影响,至于为何快?我们学完hash再解释。
字典两大特点: 无序,键唯一
dic = {1:'xiaohu','age':'20','hobby':{'name':'铁锤','age':45},'is_handsome':True}
print(dic)
print(dic['hobby']) # 字典和元祖都不可以做为键 因为他们都是可变的 字典可以作为后面的值
创建字典
dic3 = dict((('','xiaohu'),)) #调用dict函数
print(dic3)
字典的操作 1、增 (1)直接新增键值对
dic1={'name':'xiaohu'}
dic1['age']=20
print(dic1) #增加一个
(2)利用函数setdefault()进行添加

2、查 (1)dic[''] 直接利用key来查值
dic.keys() dic.values() dic.items()
dic4={'name': 'xiaohu', 'age': 20, 'hobby': 'girl'}
print(dic4['name'])
print(dic4.keys()) # 通过keys方法来查看字典里所有的键,但是注意的是拿出来的不是一个列表 dict_keys(['name', 'age', 'hobby'])
print(type(dic4.keys())) #<class 'dict_keys'>
print(list(dic4.keys())) # ['name', 'age', 'hobby'] 将它转换成列表
print(list(dic4.values())) #['xiaohu', 20, 'girl'] 将它的值拿出来并且转换成列表
print(list(dic4.items())) # [('name', 'xiaohu'), ('age', 20), ('hobby', 'girl')]
3、改 update
dic4={'name': 'xiaohu', 'age': 20, 'hobby': 'girl'}
dic4['age']=21
print(dic4) #{'name': 'xiaohu', 'age': 21, 'hobby': 'girl'}
dic5={'':111,'age':''}
dic4.update(dic5) # 将dic5加入到idc4中去,dic4发生改变,dic5不发生改变, 若有重复的键,将覆盖其值
print(dic4) # {'name': 'xiaohu', 'age': '2222', 'hobby': 'girl', '1': 111}
print(dic5) # {'1': 111, 'age': '2222'}
4、删 del clear pop popitem
dic6={'name': 'xiaohu', 'age': 20, 'hobby': 'girl','height':''}
# del dic6['name'] # 删除的是一个键值对
# print(dic6)
# dic6.clear() #删除一整个字典 字典删除后为空
# print(dic6.pop('age')) # 删除某一个索引,返回删除的值
# print(dic6)
a=dic6.popitem() # 删除的是随机的
print(a,dic6)
5、涉及到的其他操作及方法
dic7=dict.fromkeys(['host1','host2','host3'],'test')
print(dic7) # {'host1': 'test', 'host2': 'test', 'host3': 'test'}
dic8=dict.fromkeys(['host1','host2','host3'],['test','test2'])
print(dic8) # {'host1': ['test', 'test2'], 'host2': ['test', 'test2'], 'host3': ['test', 'test2']}
6、后话 字符串拼接 join方法
a=''
b='abc'
e=''
c=a+b
print(c) # 123abc
d='---'.join([a,b,e]) # 通过‘---’将字符串拼接
print(d) # 123---abc---444
7、字典与字符串的转换 利用eval()函数转换成字典
a=str({'beijing':{'':1111}}) # 将字典类型转换成字符串类型,使之可以存到文件里
print(type(a))
print(a)
a=eval(a) # 使用eval()函数将字符串转换成字典类型,为了操作从文件取出来的字符串类型的字典进行操作,否则操作报错
print(type(a))
print(a['beijing'])
Python基本数据结构之字典的更多相关文章
- 学Python常用数据结构之字典
迄今为止,我们已经为大家介绍了Python中的三种容器型数据类型,但是这些数据类型还不足以帮助我们解决所有的问题.例如,我们要保存一个人的信息,包括姓名.年龄.体重.单位地址.家庭住址.本人手机号.紧 ...
- python核心数据结构之字典
 [TOC ...
- Python之数据结构:字典
key值需要是不可变对象,字典没有顺序 1.声明一个字典 dictA={ } 2.字典添加元素 dictA['name']='jack' dictA['age']=19 dictA['sex']='m ...
- python基础--数据结构之字典
字典 特点:无序,键唯一 目录 1.字典的创建 2. .setdefault 的使用 3. 字典中的查找 4.字典中的改 5. 字典中的删除 6. 打印字典的方法 7. 格式化字符串 8. 合并字符 ...
- Python常见数据结构-Dictionary字典
字典基本特点 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中. 键是唯一的,如果重复最后的一个键值对会替换前面的,值不需 ...
- Python基本数据结构之字典嵌套(例子)
北京城市地区之间的嵌套 # coding=gbk #Created on 2019/5/20 #@author: XiaoHu menu = { '北京': { '朝阳': { '国贸': { 'CI ...
- 小白学 Python(13):基础数据结构(字典)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(12):基础数据结构(字典)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 【循序渐进学Python】4. Python中的序列——字典
字典是Python内建的六种序列之一.字典作为一种常用的数据结构,字典中的值没有特定顺序,每个值都对应于一个唯一的键.键可以是数字.字符串甚至是元组. 1. 创建和使用字典 Python中字典可以使用 ...
随机推荐
- tomcat容器是如何创建servlet类实例
当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息. 然后,将每个应用中注册的servlet类都进行加载,并通过反 ...
- 02-17 kd树
目录 kd树 一.kd树学习目标 二.kd树引入 三.kd树详解 3.1 构造kd树 3.1.1 示例 3.2 kd树搜索 3.2.1 示例 四.kd树流程 4.1 输入 4.2 输出 4.3 流程 ...
- python编程基础之九
原码, 反码, 补码原码,即用二进制表示正数: 原码 == 反码 == 补码负数: 反码: 原码除符号位之外全部取反 补码: 反码 + 1 位运算:运算符 作用 & 按位与 | 按位或 ^ 按 ...
- LeetCode_682-Baseball Game
给定一个字符串列表,字符串包含整数,’+’,’D’,’C’,整数代表一个分数,’+’代表后两个有效分数的和,’D’代表后一个有效分数的两倍,’C’代表删除后一个有效的分数值,最后求所有有效分数的和.例 ...
- MAC 上的Phantomjs的安装和配置
1.下载 http://phantomjs.org/download.html 选择mac版本下载 2.下载完成后,解压缩,然后放到自己的一个目录下面 例如:/usr/local/Phantomjs/ ...
- go-linux环境搭建
下载 go1..linux-amd64.tar.gz 解压: tar zxvf go1..linux-amd64.tar.gz -C /usr/local 配置环境变量:vim /root/.bas ...
- Electron开发跨平台桌面程序入门教程
最近一直在学习 Electron 开发桌面应用程序,在尝试了 java swing 和 FXjava 后,感叹还是 Electron 开发桌面应用上手最快.我会在这一篇文章中实现一个HelloWord ...
- shell基本运算符(五)
shell支持多种运算符,包括:算术运算符.关系运算符.布尔运算符.字符串运算符.文件测试运算符. 注意:条件表达式要放在方括号之间,并且要有空格,eg:[$a==$b] 是错误的,必须写成 [ $a ...
- Mybaits 源码解析 (一)----- 搭建一个mybatis框架(MyBatis HelloWorld)
源码分析之前先搭一个mybatis的demo,这个在看源码的时候能起到了很大的作用,因为在看源码的时候,会恍然大悟,为什么要这么配置,为什么要这么写.(老鸟可以跳过这篇) 开发环境的准备 创建mave ...
- React-Native转小程序调研报告:Taro & Alita
一. 我们的要求 期望的要求 基于React语法,将RN项目转化为小程序项目 该小程序能同时在 微信小程序 和 支付宝小程序这两个平台运行 底线要求 底线是能转成微信小程序,因为目前来说,因为微信先发 ...