Python基础之字典操作
字典
字典的优点:
dict key 必须是不可变数据类型,可哈希,
value:任意数据类型。
dict 优点:二分查找去查询
存储大量的关系型数据
特点:无序的(指的是不可人为的去改变顺序)
数据类型划分为:可变数据类型和不可变数据类型
可变数据类型(不可哈希的):
list、dict、set
不可变数据类型(可哈希的):
int、str、tuple、bool
定义一个字典
dict1 = {'age': 25, 'sex': '男', 'hight': 171}
字典的增
dict1['eye'] = 'blue'
{'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue'}
# setdefault 函数
字典中有这个键,就什么都不做
dict1.setdefault('eye', 'green')
{'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue'}
字典中没有这个键,就增加
dict1.setdefault('city', 'hangzhou')
{'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue', 'city': 'hangzhou'}
不指定值,则默认为None
dict1.setdefault('city')
{'age': 25, 'sex': '男', 'hight': 171, 'eye': 'blue', 'city': None}
字典的删除
最原始的方法,但是如果删除的键不存在则会报错导致程序崩溃 无返回值
del dict1['age']
# 保险的方法 pop函数
如果有键则删除,没有就返回指定的None,返回值是指定键的值
dict1.pop('age', None)
清空字典
dict1.clear()
随机删除一个键 有返回值,以元组形式的键值对
dict1.popitem()
字典的修改
直接修改
dict1['age'] = 35
update函数 更新合并
dic = {'names': 'jm001', 'sex': 'woman'}
dict2 = {'hight': 172}
dic2更新合并dic
dict2.update(dic)
{'hight': 172, 'names': 'jm001', 'sex': 'woman'}
字典的查
dict1 = {'age': 25, 'sex': '男', 'hight': 171}
dict1.keys()
dict_keys(['age', 'sex', 'hight'])
dict1.values()
dict_values([25, '男', 171])
dict1.items()
dict_items([('age', 25), ('sex', '男'), ('hight', 171)])
位置的交换
a = 1
b = 2
b, a = a, b
2 1
a, b = [1, 2]
1 2
a, b = [2,3], [5,6]
[2, 3] [5, 6]
原始的查找,如果找不到会报错
dict1['age']
get函数查找,找不到就默认返回None,当然也可以指定
dict1.get('age', None)
字典的混合使用
dict_json = {
'city': ['北京', '上海', '杭州'],
'data': {
'name': 'jm001',
'sex': 'xiaoxinggan',
'video_list': ['s', 'a', 'd']
},
'age': 25
}
向city字段里面追加 深圳
dict_json['city'].append('深圳')
print(dict_json)
{'city': ['北京', '上海', '杭州', '深圳'], 'data': {'name': 'jm001', 'sex': 'xiaoxinggan', 'video_list': ['s', 'a', 'd']}, 'age': 25}
把data里的sex 值全部改为大写
dict_json['data']['sex'] = dict_json['data']['sex'].upper()
print(dict_json)
{'city': ['北京', '上海', '杭州', '深圳'], 'data': {'name': 'jm001', 'sex': 'XIAOXINGGAN', 'video_list': ['s', 'a', 'd']}, 'age': 25}
向s里面添加键值对 hobby:eat
dict2 = {'hobby': 'eat'}
dict_json['data']['video_list'].append(dict2)
print(dict_json)
{'city': ['北京', '上海', '杭州', '深圳'], 'data': {'name': 'jm001', 'sex': 'xiaoxinggan', 'video_list': ['s', 'a', 'd', {'hobby': 'eat'}]}, 'age': 25}
需求
随便输入一个字符串中包含数字和字母的,找出相连整数出现的次数
info = input('>>>')
for i in info:
if i.isalpha():
info = info.replace(i, ' ')
res = info.split()
l = len(res)
print(l)
这里需要注意一下,for循环一个不可变类型,其实是一开始就将整个循环次数循序的机制读取到内存中,不管这个类型在你操作后怎么变化,这些机制是从始至终都要执行完毕的
Python基础之字典操作的更多相关文章
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- python基础篇(文件操作)
Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
- python基础之字典、集合
一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...
- python 基础之字典一
字典特点:无序.键唯一 字典的创建 bag = {'cx':'chenxi','gghg':35} print(bag['cx']) 测试 chenxi Process finished with e ...
- Python基础语法day_04——操作列表
day_04 遍历整个列表 我们创建列表时,需要输出整个列表,但是通常列表会很长,包含很多元素,当列表长度发生变化是,都必须修改代码.通过for循环,我们可以很轻易地输出整个列表. #遍历整个列表 创 ...
- Python基础知识---字典
现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典: key --> valu ...
- [Python Study Notes]字典操作
字典操作 a.增加 >>> info["stu1104"] = "abc" >>> info {'stu1102': 'x5 ...
- Python基础之字典
字典初识 字典的认识 首先,我们来认识一下字典: # 定义一个字典 user_dict = {"name": "zhangsan", "age&quo ...
随机推荐
- kubernetes组件架构
kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写.是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效( ...
- Spring Cloud (5)hystrix 服务熔断
1.pom文件 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g ...
- JAVA企业级快速开发平台,JEECG 3.7.3 新春版本发布
JEECG 3.7.3新春版本发布 - 微云快速开发平台 导读 ⊙精美Echart报表 ⊙二维码生成功能 ⊙Online接口改造采用JWT机制 ⊙智能菜单搜索 ⊙代码生成器模板优 ...
- UI5-学习篇-18-云端UI5应用部署到Fiori Launchpad
UI5应用发布SCP 选择UI5应用项目,右键 Deploy - Deploy to SAP Cloud Platform 输入云平台子账号,项目名称,应用名称,如下图所示: 点击Open the r ...
- vue.js 作一个用户表添加页面----初级
使用vue.js 制作一个用户表添加页面,实际上是把原来需要使用js写的部分,改写成vue.js的格式 首先,想象一下,先做思考,我们要添加用户表,设涉及到哪些数据,一个是用户id,一个是用户名,一个 ...
- js 引入外部文件之 script 标签
在我的理解看来,html 就是一个单纯的管显示问题,js就是单纯的管动作问题,css就是单纯的管布局问题,这三个构成了一个网页 在HTML中,经常会用到引入js 文件. 引入js的方法很简单: 1. ...
- [ SHELL编程 ] 数组、关联数组和awk数组
本文主要对shell编程中常用的数组.关联数组和awk数组定义.操作以及注意事项做个总结,并提供具体案例. 数组 数组定义:一对圆括号表示数组,数组元素之间用空格符号分割. Array=(val1 v ...
- 记录在Centos下安装和使用Git的过程,从github上克隆仓库和提交。
1 安装git yum install git 2配置DNS vi /etc/resolv.conf nameserver 8.8.8.8nameserver 8.8.4.4 3 设置网关 vi /e ...
- 16.1 用auth0服务 实现用登录和管理 使用auth版本的2个大坑。
这是三周内容,实现用户登录和管理 回到master分支 切换到 han分支 更新一下 然后工作 开始工作写代码了 安装2个angular端的auth0的lib,也可不安装,后边有不安装的做法 不安装的 ...
- Hibernate学习笔记2.1(Hibernate基础配置)
Hibernate基础配置 1.<property name="hbm2ddl.auto">update</property> 在SessionFactor ...