学习目标:
掌握python的序列知识
学习内容:
- 列表
- 元组
- 集合
- 字典
- 字符串
学习时间:
2023年4月9日至2023年4月15日
学习产出:
- 课本基础知识学习
- CSDN相关知识浏览记录
- 学习笔记记录
学习笔记:
@基础知识
(1)牵引(访问某个元素)
print(verse[2])
(2)切片(访问某些元素)
sname[start:end:step]
# start:开始位置;end:结束位置;step:步长
(3)序列相加
pirnt(verse 1+verse 2)
(4)序列乘法
print(verse*3)
# empty = []*3
(5)检查某个元素是否存在序列当中
value in sequence
(6)计算序列的长度、最大值、最小值
函数 | 说明 | 函数 | 说明 |
list() | 将序列转换为列表 | sorted() | 对元素进行排序 |
str() | 将元素转换为字符串 | reversed() | 方向序列中的函数 |
sum() | 计算元素和 | enumerate() | 将序列转换为一个索引序列,多用在for循环 |
4.1 列表
1.列表的创建与删除
(1)使用赋值运算符直接创建列表
listname = [element 1,element 2,...,element n]
(2)创建空列表
emptylist = []
(3)创建数值列表
(4)删除列表
2.访问列表元素
3.遍历列表
(1)使用for循环实现
for item in listname
# 输出 item
(2)使用for循环和enumerate函数实现
for index,item in enumerate(listname):
# 输出 index 和 item
(3)不换行输出
", end=''"
4.添加、修改和删除列表元素
5.对列表进行统计计算
6.对列表进行排序
7.列表推导式
(1)生成指定范围的数值列表:
list = [Expression for var in range]
(2)根据列表生成指定需求的列表:
new = [Expression for var in list]
(3)从列表中选择符合条件的元素按需求组成新的列表:
newlist = [Expression for var in list if condition]
8.定义二维列表
(1)直接定义二维列表:
listname = [[元素 11,元素 12,元素 13,...,元素 1n],
[元素 21,元素 22,元素 23,...,元素 2n],
...,
[元素 n1,元素 n2,元素n3,...,元素 nn]]
(2)使用嵌套的for循环创建:
arr = []
for i in range():
arr.append[]
for j in range():
arr[i]append(j)
(3)使用列表推导式创建:
arr = [[j for j in range(5)] for i in range(4)]
# 检索可用listname[下标 1][下标 2]
4.2 元组
(元组是不可变的列表)
1. 元组的创建与删除
(1)使用赋值运算符直接创建元组
tuplename = (element 1,element 2,element 3,...element n)
(2)创建空元组
emptytuple = ()
(3)创建数值元组
tuple(data)
(4)删除元组
del tuplename
2.访问元组元素
(1)输出元组
print(tuple)
# print(tuple[])
# print(tuple[])
(2)使用for循环和enumerate()函数遍历元组
3.修改元组
(1)元组不支持列表的修改方式
(2)元组修改可以重新定义新元组增减内容、或链接不同元组合成新元组、单个元组元素增添要加逗号。
ukguzheng = (1,2,3,4)
ukguzheng = ukguzheng + (5,)
4.元组推导式
import random
randomnumber = (randon. randint(10,100) for i in range(10))
randomnumber = tuple(randonnumber) # 输出格式为元组
# randomnumber = list(randomnumber) 输出格式为列表
print(randomnumber)
小结:元组与列表的区别
(1)列表属于可变序列,它的元素可以随时被修改或删除;而元组属于不可变序列,其元素不可被删改,除非整体替换。
(2)列表可以使用append()、extend()、insert()、remove()、pop()等方法添加和修改列表元素;但元组不能使用,不能添加或修改元素。
(3)列表可以使用切片访问和修改列表中的元素。元组也支持切片,但元组只能通过切片访问元素,但是不能通过切片修改元素。
(4)元组比列表访问和处理的速度快。
(5)列表不能作为字典的键,而元组可以。
4.3 字典
1.字典的创建与删除
(字典是键与值得集合体,存在一一对应的关系,键不可以变,值可以变)
(1)基本语法格式:
dictionary = {'key1':'value1','key2':'value2',...,'keyn':'valuen'}
(2)定义空字典:
dictionary = {}
# dictionary = dict()
(3)通过映射函数创建字典:
dictionary = dict(zip(list1,list2))
(4)通过给定的“键-值对”创建字典:
dictionary = dict(key1=value1,key2=value2,...,keyn=valuen)
# 用fromkeys()方法创建值为空的字典
# dictionary = dict.fromkeys(list1)
(5)根据已有的元组列表创建字典:
name = {list:list1}
2. 访问字典
(1)直接输出字典:
print(dictionary)
(2)输出指定键的内容:
print(dictionary[])
# []内的内容需要带上单引号
# dictionary.get(key,'值不存在时的返回值')
3. 遍历字典
dictionary.item()
# 返回值是元组列表
dictionary = {}
for item in dictionary.items():
print(item)
# 返回值是元组,没有冒号,一个键值一行
dictionary = {}
for key,value in dictionary.items():
print(key,value)
# items可以用values或keys代替
4.4 集合
4.5 字符串
@简要说明:ASCII码(256个符号)
(1)字符串分类:str和byte(数据类型前面b)
1. 字符串编码转换
(1)使用encode()方法编码
str.encode([encoding="utf-8"][,errors="strict"])
(2)使用decode()方法解码
byte.decode([encoding="utf-8"][,errors="strict"])
2.字符串常用操作
(1)拼接字符串
print(mot_en + mot_cn)
# 只允许字符串之间的拼接
(2)计算字符串的长度
len(string) # 获得长度
len(str.encode()) # 获得utf-8转换后的长度
len(str.encode('gbk')) # 获得gbk转换后的长度
(3)截取字符串
string[start:end:step] # 切片
# 一个字符占一个位置
try:
substr1 = str1[15]
except IndexError:
print('指定的索引不存在')
(4)分割合并字符串
str.split(sep,maxsplit) # 分割字符串 maxsplit:分割位数
strnew = string.join(literable) # literable:被合并的列表
(5)检索字符串
# count()方法
str.count(sub[,start[,end]]) # sub检索目标
# find()方法 rfind:从右边开始检索
str.count(sub[,start[,end]]) # 不存在时返回-1,返回位置从0开始
# 判断是否存在
'sub' in str # 返回正确与错误
# index()方法 rindex:从右边开始检索
str.index(sub[,start[,end]]) # 不存在时跳出异常
# startswith()方法 正确时返回Ture,错误返回False
str.startswith(prefix[,start[,end]]) #检查是否以指定字符串开头 prefix:指定目标
# endswith()方法
str.endswith(prefix[,start[,end]]) # 是否以指定目标结尾
(6)字母的大小写转换
# 用lower()方法大写转小写
str.lower()
# 用upper()方法小写转大写
str.upper()
(7)去除字符串中的空格和特殊字符
# strip()方法去除空格、制表符、按键符、换行符:默认
str.strip([chars]) #指定目标去除,可单个或多个
# lstrip()方法去除左侧符
tr.lstrip([chars])
# rstrip()方法去除右侧符
tr.rstrip([chars])
(8)格式化字符串
# 使用“%”操作符
'%[-][+][0][m][.n]格式字符'%exp # 第二个%前面为模板,后面为填充数据
格式字符 | 说明 | 格式字符 | 说明 |
%s | 字符串(采用str()显示) | %r | 字符串(采用repr()显示) |
%c | 单个字符 | %o | 八进制整数 |
%d或者%i | 十进制整数 | %e | 指数(基地写为e) |
%x | 十六进制整数 | %E | 指数(基地写为E) |
%f或者%F | 浮点数 | %% | 字符% |
str.format(args) # 语法格式str模板:args填充内容
# 模板
{[index][:[[fill]align][sign][#][width][.precision][tupe]]}
格式字符 | 说明 |
S | 对字符串类型格式化 |
D | 十进制整数 |
C | 将十进制整数自动转换成对应的Unicode字符 |
e或者E | 转换为科学计数法表示再格式化 |
g或者G | 自动在e和f,或者E和F中切换 |
b | 将十进制整数自动转换成二进制表示再格式化 |
o | 将十进制整数自动转换成八进制表示再格式化 |
x或者X | 将十进制整数自动转换成十六进制表示再格式化 |
f或者F | 转换为浮点数(默认小数点后保留六位)再格式化 |
% | 显示百分比(默认显示小数点后六位) |