数据类型是Python基本语法中非常重要的一部分,本文对集合、序列、字典这三大类数据类型做了部分总结。
集合类型及操作
- 集合是多个元素的无序组合
- 集合元素之间无序,每个元素唯一,不存在相同元素
- 集合元素不可更改,不能是可变数据类型
1.集合的创建
1 | #使用{}建立集合 |
2.集合操作符
操作符及应用 | 描述 |
---|---|
S|T | 并,返回一个新集合,包括在集合S和T中的所有元素 |
S-T | 差,返回一个新集合,包括在集合S但不在T中的元素 |
S&T | 交,返回一个新集合,包括同时在集合S和T中的元素 |
S^T | 补,返回一个新集合,包括集合S和T中的非相同元素 |
S<=T 或 S<T | 返回True/False,判断S和T的子集关系 |
S>=T 或S>T | 返回True/False,判断S和T的包含关系 |
3.集合处理方法
操作函数或方法 | 描述 |
---|---|
S.add(x) | 如何x不在集合S中,将x增加到S |
S.discard(x) | 移除S中元素x,如果x不在集合S中,不报错 |
S.remove(x) | 移除S中元素x,如果x不在集合S中,产生KeyError异常 |
S.clear() | 移除S中所有元素 |
S.pop() | 随机返回S的一个元素,更新S,若S为空产生keyError异常 |
S.copy() | 返回集合S的一个副本 |
len(S) | 返回集合S的元素个数 |
x in S | 判断S中元素x,x在集合S中,返回True,否则返回False |
x not in S | 判断S中元素x,x不在集合S中,返回True,否则返回False |
set(x) | 将其他类型变量x转变为集合类型 |
1 | S={"s","f","e","h","g"} |
4.集合类型应用场景:数据去重
1 | ls=["p","p","y","y",123] |
序列类型及操作
- 序列是具有先后关系的一组元素
- 序列是一维元素向量,元素类型可以不同
- 元素间由序号引导,通过下标访问序列的特定元素
- 序列是一个基类类型,主要发展为以下三类:
- 字符串类型
- 元组类型
- 列表类型
1.序列处理操作符与函数
其同样适用于字符串类型、元组类型、列表类型
6个操作符
操作符及应用 描述 x in s 如果x是序列s的元素,返回True,否则返回False x not in s 如果x是序列s的元素,返回False,否则返回True s + t 连接两个序列s和t s*n 序列s复制n次 s[i] 索引,返回s中的第i元素,i是序列的序号 s[i:j] 或 s[i:j:k] 切片,返回序列s中第i到j以K为步长的元素子序列 5个函数
函数 描述 len(s) 返回序列s的长度,即元素个数 min(s) 返回序列s的最小元素,s中元素需要可比较 max(s) 返回序列s的最大元素,s中元素需要可比较 s.index(x) 或 s.index(x,i,j) 返回序列从i开始到j位置中第一次出现元素x的位置 s.count(x) 返回序列s中出现x的总次数 1
2
3
4s=[1,9,3,4,5,2,7,8,9,10]
print("输出结果如下:")
print(s[0:4])
print(s.index(9,2,8))
2.元组类型及操作
元组是序列类型的一种扩展
元组是一种序列类型,一旦创建就不能被修改
使用小括号
()
或tuple
创建,元素间用逗号,
分割1
2
3
4
5
6s="helloworld"
print("输出结果如下:")
#使用tuple创建
print(tuple(s))
#使用()创建
print(('s','s','y'))
3.列表类型及操作
列表是序列类型的一种扩展,创建后可以随意被修改
使用方括号
[]
或list
创建,元素间用逗号,
分隔列表中各元素类型可以不同,无长度限制
列表类型的操作函数
函数 描述 ls.append(x) 在列表ls最后增加一个元素 ls.clear() 删除列表ls中所有的元素 ls.copy() 生成一个新列表,赋值ls中所有元素 ls.insert(i,x) 在列表ls的第i位置增加元素x ls.pop(i) 将列表ls中第i位置元素取出并删除该元素 ls.remove(x) 将列表ls中出现的第一个元素x删除 ls.reverse() 将列表中ls的元素反转 del ls[i:j:k] 删除列表ls中第i到j以k为步长的元素 1
2
3
4
5
6
7
8ls=[9,1,2,3,4,5,6,7,8]
del ls[0:2:1]
print("输出结果如下:")
print(ls)
ls.insert(3,"s")
print(ls)
ls.reverse()
print(ls)
4.字符串类型及操作
字符串的序号:
1
2
3s="python is a romantic language"
#字符反转
print(s[::-1])结果如下:
字符串处理函数
函数 描述 str(x) 任意类型所以对应的字符串形式 hex(x) 或 oct(x) 整数x的十六进制或八进制小写形式字符串 chr(u) u为Unicode编码,返回其对应的字符 ord(x) x为字符,返回其对应的Unicode编码 1
2
3#打印十二星座对应的字符
for i in range(12):
print(chr(9800+i),end=" ")字符串处理方法
方法 描述 str.lower() 或 str.upper() 返回字符串的副本,全部字符小写/大写 str.split(sep=None)
返回一个列表,有str根据sep被分隔的部分组成 str.replace(old,new) 返回字符串str副本,所有old子串被替换成new str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选 str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符 str.join(iter)
在iter变量除最后元素外每个元素后增加一个str,此方法也适用于列表,返回的是字符串类型 1
2
3
4
5
6
7
8
9
10s="helloworld"
print("输出结果如下:")
print(s.upper())
print(s) #返回了大写的副本,原来的字符串s并没有被改变
s_new=",".join(s)
print(s_new)
print(type(s_new))#说明使用str.join(iter)返回的类型是一个字符串
print(s_new.split(","))
print(type(s_new.split(",")))#说明使用str.join(iter)返回的类型是列表
print(s.center(20,"="))字符串类型的格式化
: <填充> <对齐> <宽度> <,> <. 精度> <类型> 引导符号 用于填充的单个字符 <
: 左对齐;<
: 右对齐;^
: 居中对齐设定输出位宽 数字的千位分隔符 浮点数小数精度 或 字符串最大输出长度 整数类型: b,c,d,o,x,X
;浮点数类型:e,E,f,%
1
print("小明的数学成绩是{1:=^20.2f},英语成绩是{0:*>20.2f},语文成绩是{2:#<20.2f}".format(98.773,97.273,96.094))
字典类型及操作
- 字典类型是“映射”的体现
- 键值对:键是数据索引的扩展
- 字典是键值对的集合,键值对之间无序
- 采用大括号
{}
和dict
创建,键值对用冒号:
表示
1.字典的创建
1 | #用{}创建 |
结果如下:
2.字典处理函数及方法
函数或方法 | 描述 |
---|---|
del d[k] | 删除字典d中键k对应的数据值 |
k in d | 判断键k是否在字典d中,如果在返回True,否则False |
d.keys() | 返回字典d中所有的键信息 |
d.values() | 返回字典d中所有的值信息 |
d.items() | 返回字典d中所有键值对信息 |
d.get(k,default) | 键k存在,则返回相应值,不在则返回default值 |
d.pop(k,default) | 键k存在,则取出相应值,不在则返回default值 |
d.popitem() | 随机从字典d中取出一个键值对,以元组的形式返回 |
d.clear() | 删除所有键值对 |
len(d) | 返回字典d中元素的个数 |
1 | #定义一个空字典d |
结果如下: