python基础(七)散点类型与格式化输出
目录
1.1 散列类型(哈希类型)
1.2 集合 set
1.2.1 概念
1.2.2 性质
1.2.3 运算
1.2.4 方法
1.3 字典 dict
1.3.1 概念
1.3.2 性质
1.3.3 方法
2.1 格式化输出
2.1.1 %方法(占位符)
2.1.2 format()方法
2.1.3 f-format()
3.1 小练习
4.1 解析
1.1 散列类型(哈希类型)
数值类型:int,float,bool -> 存储一个数值
序列类型:str,list,tuple -> 存储多个数据
散列类型:1.无序 【散列类型没有下标】2.内部元素不重复
1.2 集合 set
1.2.1 概念
集合(set) -> 负责存储【不重复的数据】,并且是【无序存储】的容器,主要用来去重和逻辑比较
1.2.2 性质
唯一性:元素唯一存在,不能重复
可变性:同列表一样。集合可以通过它的一些方法进行修改操作
无序性:无下标,无顺序
set1 = {1, 2, 3, 4, 1, 2, 6, 5, 7, 7, 7, 9, 8, 2, 8}
print(set1) # 正常输出一个集合,里面的数据默认去重
# print(set1[0]) # 散列类型无序,不可以通过下标提取元素,报错
print(type(set1))语法:集合名 = {数据1,数据2,数据3.....} # 如果有重复的,是不会被添加到内存空间里面ps:创建空集合的时候必须使用set() 而不能直接{} ,{}默认是空字典
li1 = [] # 空列表
tu1 = () # 空元组
str1 = "" # 空字符串
dict1 = {} # 空字典
set1 = set() # 空集合集合的基本操作 --》去重
li = [1, 2, 3, 4, 5, 6, 6, 6, 6, 7, 8, 9, 9, 9]
# 快速写法
li = list(set(li))
1.2.3 运算
运算操作 | Python运算符 | 含义 |
---|---|---|
交集 | & | 取两集合公共的元素 |
并集 | | | 取两集合全部的元素 |
差集 | - | 取一个集合中另一集合没有的元素 |
成员运算 | in 和 not in | 判断一个某个元素是否在或者不在集合中 |
集合1 & 集合2 --> 判断交集 (shift+7)
集合1 | 集合2 --> 判断并集 (shift + \)
集合1 - 集合2 --> 判断差集交集:两个集合里面共同拥有的数据
并集:两个集合里面的全部数据(不包括重复数据)
差集:差集1 - 差集2 减去共有部分,剩下的就是差集【去掉交集之后就是差集】# & 交集 取两个集合的公共元素
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 & set2) # 获取公共部分# | 并集,取两个集合的全部元素,结果会去重
print(set1 | set2)# - 差集
print(set1 - set2)- 小练习
碗A {炸鸡,青菜,小龙虾}
碗B {臭豆腐,青菜,螃蟹}
交集:两个碗里面都有的菜,就是交集 =》 青菜
并集:两个碗里面的菜种类加在一起,就是并集 =》炸鸡,青菜,小龙虾,臭豆腐,螃蟹
差集:将和另一个碗共有的菜减掉碗A - 碗B ==> 炸鸡,小龙虾碗B - 碗A ==> 臭豆腐,螃蟹注意:集合不能放列表集合的作用:1.存储非重复数据2.用于将序列类型去重,逻辑判断(交并差)
1.2.4 方法
集合的方法都是作用效果于原集合
增
- add() : 参数为要添加的对象,通过多次添加数据可以发现添加后的元素位置不确定- update() : 参数为序列类型,会将每一个元素拆分后随机添加集合中s = {"华为"}
s.add('小米') # add 是往前面添加
print(s)
s.add("苹果")
print(s)
s.update("123")
print(s)
删
```python
pop():随机删除一个元素 # pycharm中默认从左开始删# 实际上在进行代码实验的时候并不是随机的,默认从左开始删# 仅在集合元素是字符串类时候,并且cmd运行才会随机删除remove(内容):有参数,参数为要删除的元素,如果元素不存在则报错
discard(内容):同remove,元素不存在也不报错clear() : 清空集合中元素s = {"华为","小米",'苹果'}
s.add('三星') # add 是往前面添加
print(s)
s.add("oppo")
print(s)
s.discard('华为')
print(s)
s.clear()
print(s)
```
1.3 字典 dict
1.3.1 概念
字典(dict)用来存储一些有典型的 “对应关系” 的数据类型,特点就是用键值对的方式来存储数据
name = ["小明",'大锤','汤姆','杰克']
tel = ["10086",'10010','10000','12315']
# 为了方便查阅,python就提供了一个存储方式:字典
字典就是以键值对来存储的什么是键值对?
小明就是键,对应一个值就是 "10086"键值对语法: key:value ex "小明":"10086"(一个元素,键值对)字典的表现形式:字典和集合一样用大括号,如果大括号里面如果存储的是普通的值,就是集合,如果是键值对(说明关系的数据),那么它就是字典字典跟普通容器不同,更适合去描述一个对象语法格式:字典名 = {键名1:值,键名2:值,键名3:值.。。。}nr = {'姓名': '小明','年龄': 18,'工作': '写Python'
}
输出方式:字典名[键]print(nr['工作'])print(call['大锤'])
1.3.2 性质
字典在内存中主要是通过键来访问
1. 无序 没有下标,字典可以通过键来访问数据字典名[键]
2. 不重复,字典的键,是不可以重复的nr = {'姓名': '小明','年龄': 18,'工作': '写Python','年龄': 28} # 重复了,默认取最后一个
3. 可变性,字典里面的数据是可变的,能嵌套nr['年龄'] = 28nr = {'姓名': '小明','年龄': 18,'工作': '写Python','技能': ['python', 'java', 'c', 'scala', '珠峰']
}
1.3.3 方法
增
- 增- setdefault:给字典添加一个元素,如果原先有这个元素,就输出它的值- 字典名.setdefault("键名") -->能增加一个键,值默认为空- 字典名.setdefault("键名","值")nr.setdefault("出生日期","1900-08-08")print(nr)一般增加不是用方法,而是直接写
zd = {"a": 1, "b": 2}
zd['c'] = 3 # 直接这样也能增加
print(zd)
删
--删
```python
pop() : 删除指定的键字典名.pop(键名)
zd.pop("c") # 字典
print(zd)
zd.pop("a")
print(zd)clear() : 清空字典
```
改
```python
update: 修改键的值,如果没有这个键,就新增加一个字典名.update({键,值})
zd.update({"d":10})
print(zd)常用的:直接赋值
zd['a'] = 5
print(zd)
```
查
```python
- get(键名,默认值) : 通过键名,获得键值print(zd.get('c','^_^')) # 区别,找不到不会报错,会填充默认值
- keys: 获得所有的键
- values 获得所有的值
zd = {"a": 1, "b": 2}
zd['c'] = 3 # 直接这样也能增加
print(list(zd.keys()))
print(list(zd.values()))- items: 获取所有的键值对,将键值对全部装成元组
```
2.1 格式化输出
格式化输出让可以更舒服的输出带有变量的字符串
2.1.1 %方法(占位符)
先预定,占住一个位置,后续再用实际的数据填不上
程序在开发的时候,有时候不确定使用的数据具体是啥,先占个位置
占位符也能分为不同的类型
常用的占位符
%s = 字符串%d = 整数%f = 小数 =》 默认保留6位小数点 %.1f => 保留一位小数点 %.2f => 保留二位小数点
语法
"xxx%dxxxx%s"%(变量1,变量2)nr = {'name': "小明",'age': 18,'height': 1.77,
}print("你好,我叫%s,今年%d岁了,身高%.3f" % (nr['name'], nr['age'], nr['height']))
2.1.2 format()方法
字符串的一个方法
语法
print("你好,我叫{},今年{}岁了,身高{}".format(nr['name'],nr['age'],nr['height']))
2.1.3 f-format()
python3.x 新提供的格式化输出方式,寓意快速
更简单,更常用
语法:在字符串前面加上 f/F,把要输出的变量用大括号{}进行包囊name = "小明"
age= 18
height = 1.7print(f"大家好,我叫{name}我今年{age}岁,今年身高是{height}")
# 大括号内的变量可以进行操作 : 方法,切片,增加减少
print(f"大家好,我叫{name[0]}我今年{age+1}岁,今年身高是{height*2}")
3.1 小练习
# 1.将列表数据[1,2,3,2,1,4,4,4,2,5,6,7,7,9,8,10,10]去重# 2.用字典建立一个个人名片,要求要一个爱好:[]# 3.有字典 dic = {"k1": "v1", "k2": "v2", "k3": "v3"},实现以下功能:(1)、遍历字典 dic 中所有的key(2)、遍历字典 dic 中所有的value(3)、循环遍历字典 dic 中所有的key和value(4)、添加一个键值对"k4","v4",输出添加后的字典 dic(5)、删除字典 dic 中的键值对"k1","v1",并输出删除后的字典 dic(6)、获取字典 dic 中“k2”对应的值
# 4.students = [{'name':'小明','age':18,'score':98,'tel':'18888888888','gender':'female'},{'name':'大明','age':20,'score':95,'tel':'18888888889','gender':'unkown'},{'name':'汤姆','age':18,'score':88,'tel':'18888888810','gender':'male'},{'name':'杰克','age':16,'score':58,'tel':'18888888811','gender':'unkown'},{'name':'山姆','age':19,'score':78,'tel':'18888888812','gender':'male'},{'name':'麦克','age':17,'score':92,'tel':'18888888813','gender':'male'},
]
# 1.统计及格学生的个数
# 2.将女性改为男性
4.1 解析
# 1.将列表数据[1,2,3,2,1,4,4,4,2,5,6,7,7,9,8,10,10]去重set1=[1,2,3,2,1,4,4,4,2,5,6,7,7,9,8,10,10]set2=set(set1)print(list(set2))# 2.用字典建立一个个人名片,要求要一个爱好:[]gr={'姓名:' :'me','年龄:' : 26,'兴趣爱好:':['打篮球','学python','打游戏','永劫无间']}print(gr)# 3.有字典 dic = {"k1": "v1", "k2": "v2", "k3": "v3"},实现以下功能:
# (1)、遍历字典 dic 中所有的key
dic={"k1": "v1", "k2": "v2", "k3": "v3"}for i in dic:print(i)
# (2)、遍历字典 dic 中所有的valuefor i in dic.values():print(i)
# (3)、循环遍历字典 dic 中所有的key和valuefor i in dic.keys():print(i,dic[i])
# (4)、添加一个键值对"k4","v4",输出添加后的字典 dic
'第一种方法: 'dic_1=dic.setdefault("k4","v4")print(dic)
'第二种方法: 'dic["k4"]='v4'print(dic)
# (5)、删除字典 dic 中的键值对"k1","v1",并输出删除后的字典 dicdic.pop("k1")print(dic)
# (6)、获取字典 dic 中“k2”对应的值print(dic["k2"])students = [{'name':'小明','age':18,'score':98,'tel':'18888888888','gender':'female'},{'name':'大名','age':20,'score':95,'tel':'18888888889','gender':'unkown'},{'name':'汤姆','age':18,'score':88,'tel':'18888888810','gender':'male'},{'name':'杰克','age':16,'score':58,'tel':'18888888811','gender':'unkown'},{'name':'山姆','age':19,'score':78,'tel':'18888888812','gender':'male'},{'name':'麦克','age':17,'score':92,'tel':'18888888813','gender':'male'},
]
# 1.统计及格学生的个数j=0for i in students:if(i['score']>=60):j+=1print(j)
# 2.将女性改为男性
for i in students:if(i['gender']=='female'):i.update({'gender':'male'})print(i)
python基础(七)散点类型与格式化输出相关推荐
- python变量类型-【干货】Python基础语法之变量类型
原标题:[干货]Python基础语法之变量类型 还没关注? 01 Python编码 Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错. 解决 ...
- python print()方法基本用法,print()格式化输出
文章目录 print()语法 参数 输出类型 print()格式化输出 python格式化符号 综合实例 print()语法 print(*objects, sep=' ', end='\n', fi ...
- python format和百分号的区别_python 格式化输出百分号的方法
python 格式化输出百分号的方法 python的百分号输出比较奇怪,代码如下 print('%s%%'%(5))#这样就能输出'5%' 以上这篇python 格式化输出百分号的方法就是小编分享给大 ...
- 自动化测试之什么是python基础基本数据类型数值类型及序列类型
前言: 大家都知道学习软件测试需要必须要掌握一门开发语言,对于测试小白来说我们都是推荐python进行学习,因为比较简单,那么今天笔者想给大家唠唠python语言的基本数据类型可以分为三类:数值类型. ...
- 全栈自动化测试之python基础基本数据类型数值类型及序列类型
文章末尾给大家留了大量的福利 前言 大家都知道学习软件测试需要必须要掌握一门开发语言,对于测试小白来说我们都是推荐python进行学习,因为比较简单,那么今天笔者想给大家唠唠python语言的基本数据 ...
- python第七章文件和数据格式化选择题_《计算机二级Python语言程序设计考试》第7章:文件和数据格式化...
注明:本系列课程专为全国计算机等级考试二级 Python 语言程序设计考试服务 目录 考纲考点 文件的使用: 文件打开.关闭和读写 数据组织的维度:一维数据和二维数据 一维数据的处理:表示.存储和处理 ...
- python基本输入与格式化_Python导学基础(三)输入、格式化输出、基本运算符
一:输入 1.python3中的input inp_username=input("请输入您的密码:") # "18" print(inp_username) ...
- 从列表中切片最佳英雄组合,我的选择是亚索和李青——补充python基础语法有关数字类型和列表的知识
本文继续补充个人对python基础语法的理解,这里主要讲数字类型和列表~ 目前还不算初级程序员把,但是一洗头就掉头发,现在都不敢洗头了~ 数字类型 python中的数字类型:int(整型).float ...
- python基础-变量,变量类型,字符串str,元组tuple,列表list,字典dict操作详解(超详细)
python基础--变量 (文章较长,若需要单独看某一个点,可点击目录直接跳转) 文章目录 python基础--变量 1. 变量 2. 变量类型 2.1数字类型 2.2 字符串 2.3 列表 2.4 ...
最新文章
- [Big Data - Kafka] kafka学习笔记:知识点整理
- Hadoop 之Pig的安装的与配置之遇到的问题---待解决
- 【面试招聘】社招如何拿到心仪公司的offer
- NAND FLASH/NOR FLASH/EMMC等存储器的比较和区别
- 群策群力:破机房征求灵丹妙药
- 6 道 BATJ 必考的 Java 面试题
- java 垂直走马灯多行,Android实现图文垂直跑马灯效果
- 兴图视频指挥系统如何配置服务器,兴图新科指挥调度终端
- MTK平台调试mipi屏问题小结
- 算法知识点——(3)监督学习——决策树
- (转)刘巍然-关于公钥与私钥
- C语言实现校运动会项目管理系统
- 罗技 logic C930c 摄像头 驱动 win7 64位 家庭中文版 无法使用
- 实验用USB转RS-232下载线制作
- java并发测试工具_Java并发测试工具类
- 基于Python PIL库的简易马赛克拼图程序
- 哆啦A梦和小猪佩奇(Python实现)
- 微信小程序 默认第一个选中变色
- stm32两轮平衡车资料
- dukelearntoprogram DNA链找基因问题 Java
热门文章
- Java WEB开发须知知识点---概况篇
- 你应该知道的前端9种图片格式基础知识
- 菜鸟python教程,菜鸟的python之路(一)
- fitbit同步不了怎么解决_Fitbit用户投诉,升级Android 9 Pie后无法同步
- 微软高级工程师带你 21 天入门机器学习
- 正常的计算机设备安装限制,win10系统只能使用指定U盘保护安全的设置教程
- ClassNotFoundException: org.codehaus.plexus.compiler.manager.NoSuchCompilerException
- c语言智能插座多线程原理,智能插座原理—智能插座的工作原理是什么
- R 报错:参数不是数值也不是逻辑值:回覆NA--数据科学新类型tibble
- matlab错误使用 sum 数据类型无效。第一个参数必须为数值或逻辑值。解决方法