4. Python序列

学习目标:

掌握python的序列知识


学习内容:

  1. 列表
  2. 元组
  3. 集合
  4. 字典
  5. 字符串

学习时间:

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]]}
format()方法中常用的格式字符及其说明
格式字符说明
S对字符串类型格式化
D十进制整数
C将十进制整数自动转换成对应的Unicode字符
e或者E转换为科学计数法表示再格式化
g或者G自动在e和f,或者E和F中切换
b将十进制整数自动转换成二进制表示再格式化
o将十进制整数自动转换成八进制表示再格式化
x或者X将十进制整数自动转换成十六进制表示再格式化
f或者F转换为浮点数(默认小数点后保留六位)再格式化
%显示百分比(默认显示小数点后六位)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值