python基础五--dict
一、昨日内容回顾
1、 列表:
增
insert:按照指定下标插入
append:在列表最后增加
extend:迭代式的增加到列表的最后,相当于列表扩展
删
pop:根据指定下标删除,返回删除的元素,如果元素不存在会报错
remove:根据元素名删除与之匹配的第一个元素,无返回值,如果不存在会报错
clear:清空列表
del:根据元素下标或切片的方式删除,也可以直接删除整个列表
改:
根据元素下标修改
根据切片修改(先删除切片指定的范围,然后在以迭代的方式插入到切片位置)
查
根据元素下标查询
根据切片查询
根据循环查询
其他方法:
len:统计列表元素的总个数
conut:统计指定字符或字符串在列表中出现的元素个数
index:获取指定元素的下标,支持切片,若不存在会报错
sort:排序,默认是正序。(若sort的reverse属性为True时,进行倒序排序,默认revers的属性是False)
reserver:反转
2、元组:
元组又叫做只读列表
元组中的列表可以修改
元组中的元组也不能修改
元组支持切片
3、 range:
python2中使用xrange的方法,python3中使用range,两者使用方法一模一样。
4、join:按照指定的连接符把可迭代对象分隔开,不指定连接符默认无缝连接,可支持切片
name_list = ['yange', 'yy', 'li', 'yan', 'liyan', 'yy']
new_list1 = '-'.join(name_list)
new_list2 = '#'.join(name_list[1:4])
print(new_list1)
print(new_list2)
>>>
yange-yy-li-yan-liyan-yy
yy#li#yan
二、重点作业讲解
5,查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
方法一:
li = ['taibai ', 'alexC', 'AbC ', 'egon', ' Ritian', ' Wusir', ' aqc']
new_li = []
for i in li:
i = i.strip()
if i.lower().startswith('a') and i[-1] == 'c':
new_li.append(i)
print(new_li)
方法二:
li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc']
lis =[]
for i in li:
a =i.strip()
if a.startswith('A') or a.startswith('a') :
if a.endswith('c'):
lis.append(a)
else:
continue
print(lis)
6、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
info=input("请输入您的评论:")
li=["苍老师","东京热","武藤兰","波多野结衣"]
new_li=[]
for i in li:
if li.index(i)!=-1:
info=info.replace(i,"***")
l1=new_li.append(info)
print(new_li)
将所有敏感词替换成对应数量的*
li = ["苍老师","东京热","武藤兰","波多野结衣"]
new_li = []
info = input('请输入你的评论:')
for i in li:
if info.find(i) != -1:
l = len(i)
info = info.replace(i,'*'*l)
new_li.append(info)
print(new_li)
将所有敏感词替换成对应数量的*
info=input("请输入您的评论:")
li=["苍老师","东京热","武藤兰","波多野结衣"]
new_li=[]
for i in li:
if li.index(i)!=-1:
l = len(i)
info = info.replace(i,'*'*l)
l1=new_li.append(info)
print(new_li)
三、今日内容讲解
1、字典的描述:
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
2、字典的特点:
字典是python中唯一一个映射的数据类型
字典是无序的
字典的数据关联性强
字典是键值对存储方式
字典的key必须是可哈希hash的(不可变的数据类型)
字典的key必须是唯一的
字典天生去重
若字典的key重复时,后面的会覆盖前面的键值
3、字典的操作:
增:
直接指定键值添加,如果key已存在,则覆盖(或叫修改)
dict_insert = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
dict_insert['job'] = 'IT'
print(dict_insert)
dict_insert['age'] = 20
print(dict_insert)
>>>
{'name': 'liyan', 'age': 18, 'sex': 'man', 'job': 'IT'}
{'name': 'liyan', 'age': 20, 'sex': 'man', 'job': 'IT'} setdefault:指定键值对添加,如果不指定value,则值为none,如果所添加的key已存在,则不做任何操作 dict_insert = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
dict_insert.setdefault('job')
print(dict_insert)
dict_insert.setdefault('age', '20')
print(dict_insert)
>>>
{'name': 'liyan', 'age': 18, 'sex': 'man', 'job': None}
{'name': 'liyan', 'age': 18, 'sex': 'man', 'job': None}
删:
pop:根据键删除键值对,返回key所对应的value,如果key不存在会报错 ,报错信息可以自定义
dict_delete = { 'name': 'liyan', 'age': 18, 'sex': 'man' }
print(dict_delete.pop('sex'))
print(dict_delete)
print(dict_delete.pop('aaa', '返回这个'))
print(dict_delete.pop('aaa'))
>>> man {'name': 'liyan', 'age': 18}
返回这个
KeyError: 'aaa'
popitem:随机删除一组键值对,并返回删除的结果
dict_delete = { 'name': 'liyan', 'age': 18, 'sex': 'man' }
print(dict_delete.popitem())
print(dict_delete)
>>> ('sex', 'man')
{'name': 'liyan', 'age': 18}
clear:清空字典
dict_delete = { 'name': 'liyan', 'age': 18, 'sex': 'man' }
print(dict_delete.clear())
print(dict_delete)
>>> None
{}
del:根据键删除键值对,没有返回值,如果key不存在会报错
dict_delete = { 'name': 'liyan', 'age': 18, 'sex': 'man' }
del dict_delete['name']
print(dict_delete)
del dict_delete['aaa']
print(dict_delete)
>>> {'age': 18, 'sex': 'man'}
KeyError: 'aaa'
改:
直接指定键和值修改,等同于新增已存在的key
dict_update = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
dict_update['age'] = 25
print(dict_update)
>>>
{'name': 'liyan', 'age': 25, 'sex': 'man'} update:把一个字典的键值对以覆盖的方式添加到另一个字典中(key存在时则覆盖,key不存在时则添加) dict_update1 = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
dict_update2 = {
'job': 'IT',
'name': 'yy'
}
print(dict_update1)
dict_update1.update(dict_update2)
print(dict_update1)
print(dict_update2)
dict_update2.update(dict_update1)
print(dict_update1)
print(dict_update2)
>>>
{'name': 'liyan', 'age': 18, 'sex': 'man'}
{'name': 'yy', 'age': 18, 'sex': 'man', 'job': 'IT'}
{'job': 'IT', 'name': 'yy'}
{'name': 'yy', 'age': 18, 'sex': 'man', 'job': 'IT'}
{'job': 'IT', 'name': 'yy', 'age': 18, 'sex': 'man'}
查:
根据键名查找对应的值,如果key不存在会报错
dict_select = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
print(dict_select['name'])
print(dict_select['aaa'])
>>>
liyan
KeyError: 'aaa' get:根据键名查找,如果key存在返回对应的value,如果key不存在则返回None,返回信息可以自定义 dict_select = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
print(dict_select.get('name'))
print(dict_select.get('aaa'))
print(dict_select.get('aaa', '找不到返回这个'))
>>>
liyan
None
找不到返回这个
其他操作:
keys:输出字典所有的key
dict_select = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
print(dict_select.keys(), type(dict_select.keys()))
>>>
dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>
values:输出字典所有的value
dict_select = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
print(dict_select.values(), type(dict_select.values()))
>>>
dict_values(['liyan', 18, 'man']) <class 'dict_values'>
items:把字典的每个键值对以元组的方式输出
dict_select = {
'name': 'liyan',
'age': 18,
'sex': 'man'
}
print(dict_select.items(),type(dict_select.items()))
>>>
dict_items([('name', 'liyan'), ('age', 18), ('sex', 'man')]) <class 'dict_items'>
python基础五--dict的更多相关文章
- python基础之dict、set及字符
python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...
- python基础——使用dict和set
python基础——使用dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其它语言中也称为map(映射),使用键-值(key-value)存储,具 ...
- 第四篇:python基础之dict、set及字符
python基础之dict.set及字符 python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射 ...
- Python基础之dict和set的使用
dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言种也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字 ...
- Python基础(五) python装饰器使用
这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 # -*- coding:gbk -*- '''示例1: 最简单的函数,表示调用了两次 ...
- Python基础:字典(dict)与集合(set)
查找场景下与列表的性能对比 字典与集合之所以高效的原因是:内部结构都是一张哈希表. 平均情况下插入.查找和删除的时间复杂度为 O(1). 假设有数量100,000的产品列表: import time ...
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
- python基础五
列表生成式 将列表data=[1,2,3]里的元素都乘2 方法一 data=[1,2,3] for index,i in enumerate(data): data[index] *=2 print( ...
- python基础教程——dict和set
dict python内置字典:dict,全称dictionary,在其他语言中称为map,使用键值对存储. ex: d = {'xiaoli' : 95 , 'xiaoming' : 98 , 'x ...
随机推荐
- thinkphp与php共享session
在其他php页面添加如下代码即可 if (!session_id()) session_start(); 使用时 thinphp 使用 session('test','123'); $user_inf ...
- jsonk可以传递boolean
JSON 布尔值可以是 true 或者 false.如: { "flag":true } 或者{“flag”,"true"}
- TOP100summit 2017:小米唐沐等大咖精心挑选的100个年度研发案例实践
2017年,机器学习.大数据.人工智能等词汇成为软件研发行业的主流,大前端.DevOps.区块链等技术方式成为热点方向:2017年,智能硬件开始成为新的焦点,这一年更被称为智能音箱井喷的一年:2017 ...
- opencv的基本数据类型CvPoint,CvSize,CvRect,CvScalar
转自http://blog.csdn.net/gdut2015go/article/details/46301821 opencv的基本数据类型CvPoint,CvSize,CvRect,CvScal ...
- pycurl实例详解
Pycurl是Python的libcurl接口.liburl是客户端的URL传输库,它支持FTP,FTPS,HTTP,HTTPS,TELNET,LDAP等诸多协议,同时支持HTTP认证,代理,FTP上 ...
- python数据结构之堆栈
本篇我以堆栈的数据类型和操作方法两个方面总结学习笔记 堆栈(Stack) 一种后进先出(LIFO)的线性数据结构,对堆栈的插入和删除操作都只能在栈顶(top)进行. 堆栈可以通过数组和链表轻松实现 一 ...
- Git:从github上克隆、修改和更新项目
一.在本地新建一个文件夹,作为本地仓库,如“BigProjet”.在该文件夹打开git bash,进入到该文件夹目录下 二.将本地仓库初始化 $ git init 三.将项目从github或者服务器上 ...
- kubernetes实战(二十):k8s一键部署高可用Prometheus并实现邮件告警
1.基本概念 本次部署使用的是CoreOS的prometheus-operator. 本次部署包含监控etcd集群. 本次部署适用于二进制和kubeadm安装方式. 本次部署适用于k8s v1.10版 ...
- 腾讯在线文档发布:实现QQ、微信多平台多人协作编辑
18日,腾讯宣布推出专注多人协作的在线文档产品—腾讯文档,据介绍,腾讯文档是一款支持随时随地创建.编辑的多人协作式在线文档工具,拥有一键翻译.实时股票函数和浏览权限安全可控等功能,以及打通QQ.微信等 ...
- Civil and Evil Engineer(普林姆)
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=198#problem/E 水题一道,题意就是让求一遍最小生成树与最大生成树,但我 ...