《Python编程实训快速上手》第二天--第四章:列表

一、列表

1、理解

列表是一个值,包含由多个值构成的序列

2、元素查找

1)索引--取列表中的单个值

正数索引:同c语言中的数组

python 复制代码
spam = [[1,2,3,4],["cat","dog"]]
print(spam[0][1])
#结果:2

负数索引:表示从右往左取值

python 复制代码
spam = ["cat","dog","zebra","monkey"]
spam[-1] ---->  "monkey"
spam[-2] ---->  "zebra"

2)切片--去列表中的多个值

结果为一个列表

1)spam[整数1:整数2] : 整数1表示切片开始处的索引,整数2表示切片结束出的索引(不包括该位置元素

python 复制代码
spam = ["cat","dog","zebra","monkey"]
spam[0:4]  --->   ["cat","dog","zebra","monkey"]
spam[1:3]  --->   ["dog","zebra"]

2)整数1不写时表示从0开始,整数2不写时表示直到列表的末尾

python 复制代码
spam = ["cat","dog","zebra","monkey"]
spam[:4]  --->   ["cat","dog","zebra","monkey"]
spam[1:]  --->   ["dog","zebra","monkey"]

3、列表长度

列表中元素个数表示列表的长度

取上述spam列表,其len(spam) == 4

4、改变元素的值

同数组

5、连接与复制

+列表 用于连接,*整数表示复制

6、删除元素

使用del语句

python 复制代码
spam = ["cat","dog","zebra","monkey"]
del spam[0]  ---->   spam = ["dog","zebra","monkey"]

7、遍历列表

1)使用range :range本质上返回的是列表值,使用**for i in range(len(spam)):**来遍历列表

2)使用enumerate :使用**for index,item in enumerate(spam):**来遍历列表。其中idex表示列表索引,item表示该索引对应的元素,当我同时需要列表索引和其对应元素时用该方法方便

python 复制代码
spam = ["cat","dog","zebra","monkey"]
for index,item in enumerate(spam):
    print(index,item)

8、判断元素是否在列表中

使用in和not in操作符

python 复制代码
spam = ["cat","dog","zebra","monkey"]
"cat" in spam  ---->  True
"howdy" not in spam  ---->  True

9、多重赋值

保证变量个数与列表长度必须一致

python 复制代码
cat = ["fat","black","loud"]
size,color,disposition = cat

10、random.choice()和random.shuffle()与列表一起使用

1)random.choice()表示随机选择列表中某一个表项并返回

2)random.shuffle()表示就地对列表进行重新排序,不产生新列表

11、列表中的方法(就地解决)

1)查找--index()

传入一个值,若该值在列表中,则返回其索引;不再则报ValueError错误

python 复制代码
spam = ["cat","dog","zebra","monkey"]
try:
    print(spam.index("cat"))
    print(spam.index("cow"))
except ValueError:
    print("Index Error")

2)增加--insert(),append()

insert(参数1,参数2):参数1表示新值的索引,参数2表示参数要插入的新值

append(元素)只能向列表尾部进行添加元素

python 复制代码
spam = ["cat","dog","zebra","monkey"]
spam.insert(1,"world")
print(spam)
spam.append("cow")
print(spam)

3)删除--remove()

remove(元素),若元素多次出现,则只删除第一次出现的值,若该元素不存在,则报错ValueError

kips:如果我已经知道该元素索引了,那么我可以用del来直接删除该元素

4)排序--sort()

默认顺序排序,若想逆序排序,则sort(reverse=True);

列表中元素类型一致才可以排序,否则报错TypeError;

对字符串排序时使用的是ASCⅡ字符顺序方式,因此有大小写区别;

若按照普通字典顺序排序,则写为sort(key=str.lower)

5)反转--reverse()

12、序列数据类型

包括列表,字符串,range()返回的范围对象以及元组

!!!只要是序列数据类型,前边提到的对列表进行查看的操作都可以使用

因为字符串是常量不可变,因此不能对字符串进行修改操作,若想修改字符串,则使用切片和连接构造一个"新的"字符串

二、元组

1、理解

元组是列表数据类型的不可变形式

将列表中的[]改为()即为元组

当元组中只有一个元素时,在末尾加一个逗号,告诉编译器这是一个元组,而不是其他类型

python 复制代码
print(type((1)))
print(type((1,)))

2、元组、列表类型转化

使用tuple()和list()函数实现

3、可变值与不可变值

对于可变值而言,a=b说明id(a)==id(b)

对于不可变值而言,a=b说明id(a)!=id(b)

函数传参同上

4、copy模块

使用copy.copy()函数可以用来复制列表或字典的可变值,相当于创建了一个新的列表或字典

使用copy.deepcopy()函数用来处理列表中嵌套列表的情况

相关推荐
小宁爱Python10 分钟前
基于 Django+Vue3 的 AI 海报生成平台开发(海报模块专项)
人工智能·python·django
红豆怪怪17 分钟前
[LeetCode 热题 100] 32. 最长有效括号
数据结构·python·算法·leetcode·动态规划·代理模式
大嘴带你水论文1 小时前
震惊!仅用10张照片就能随意编辑3D人脸?韩国KAIST最新黑科技FFaceNeRF解析!
论文阅读·人工智能·python·科技·计算机视觉·3d·transformer
CodeCraft Studio1 小时前
国产化PDF处理控件Spire.PDF教程:如何在 Java 中通过模板生成 PDF
java·python·pdf·spire.pdf·java创建pdf·从html创建pdf
摆烂z2 小时前
Jupyter Notebook的交互式开发环境方便py开发
ide·python·jupyter
一乐小哥3 小时前
一口气同步10年豆瓣记录———豆瓣书影音同步 Notion分享 🚀
后端·python
华研前沿标杆游学3 小时前
华为在国内搞的研发基地有多野?标杆游学带你解锁“研发界顶流”
python
小胖墩有点瘦3 小时前
【基于深度学习的中草药识别系统】
人工智能·python·深度学习·课程设计·计算机毕业设计·中草药识别
正在走向自律4 小时前
Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查
开发语言·数据库·python·ubuntu·kingbasees·ksycopg2
Calihen的学习日志4 小时前
【Pandas】3.1-数据预处理:列的基本操作
python·pandas