字典

字典的优点:

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基础之字典操作的更多相关文章

  1. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  2. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  3. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  4. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  5. python 基础之字典一

    字典特点:无序.键唯一 字典的创建 bag = {'cx':'chenxi','gghg':35} print(bag['cx']) 测试 chenxi Process finished with e ...

  6. Python基础语法day_04——操作列表

    day_04 遍历整个列表 我们创建列表时,需要输出整个列表,但是通常列表会很长,包含很多元素,当列表长度发生变化是,都必须修改代码.通过for循环,我们可以很轻易地输出整个列表. #遍历整个列表 创 ...

  7. Python基础知识---字典

    现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典:  key --> valu ...

  8. [Python Study Notes]字典操作

    字典操作 a.增加 >>> info["stu1104"] = "abc" >>> info {'stu1102': 'x5 ...

  9. Python基础之字典

    字典初识 字典的认识 首先,我们来认识一下字典: # 定义一个字典 user_dict = {"name": "zhangsan", "age&quo ...

随机推荐

  1. 用javascript控制svg的图片颜色

    SVG:(1.svg) <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC ...

  2. 43.纯 CSS 绘制一个充满动感的 Vue logo

    原文地址:https://segmentfault.com/a/1190000015177284 感想: 又有点回到boder的三角形 HTML code: <div class="v ...

  3. kubernetes国内镜像拉取

    因国内访问不到goole服务器,只能拉取国内的镜像,这里以阿里云为例. 安装minikube时报failed to pull image "k8s.gcr.io/kube-apiserver ...

  4. AspxGridView使用手记

    AspxGridView使用手记   一.  基本使用方法  4 1.导入Dll文件   4 2.Asp.Net页面控件注册 4 3. Asp.Net页面控件声明    5 4.删除licenses. ...

  5. [记录] Ubuntu 配置Apache虚拟站点

    版本 Ubuntu 16.04 1 . 首先找到Apapche配置文件夹  /etc/apache2/ apache2.conf conf-enabled magic mods-enabled sit ...

  6. oracle删除表数据的两种的方式

    转自:https://blog.csdn.net/qq_37840993/article/details/82490787 平时写sql中我们都会用到删除语句,而平时删除表数据的时候我们经常会用到两种 ...

  7. 常用jqueryPlugin

    http://www.jq22.com editable-select :  jQuery可编辑可下拉插件jquery.editable-select.js

  8. MFC中在picture control中显示CBitmap图像的方法

    CStatic *pStatic1 = (CStatic *)GetDlgItem(IDC__IMAGE_STATIC2); CBitmap cbmp; cbmp.LoadBitmap(MAKEINT ...

  9. text-align: justify;浏览器、安卓手机不兼容问题

    https://segmentfault.com/a/1190000013146385

  10. C#使用MonoPInvokeCallback,让C直接回调C#函数

    Test.mm char* TestMakeCString(NSString *str) { const char* string = [str UTF8String]; if (string == ...