目录
一、列表的定义
列表(List)是一种可变的序列类型,用于存储有序的元素集合。列表可以包含不同类型的元素,包括数字、字符串、其他列表等。列表是动态的,这意味着你可以在列表创建后添加、删除或修改其中的元素。
1、列表的创建
列表可以通过将元素放在方括号 []
中,并用逗号 ,和
[ ],list() 分隔来创建。
l1 = list()
l2 = [1,2,3,4,5,'6']
print(l1,type(l1),l2,type(l2)) # [] <class 'list'> [1, 2, 3, 4, 5, '6'] <class 'list'>
2、访问列表元素
通过索引访问列表中的元素,索引从 0 开始
l2 = [1,2,3,4,5,'6']
print(l2[0],l2[1]) # 1,2
3、修改列表元素
可以直接通过索引赋值来修改列表中的元素。
l2 = [1,2,3,4,5,'6']
l2[0] = 5 # [5, 2, 3, 4, 5, '6']
4、拼接列表
l3 = ["键盘敲烂"]
l4 = ["工资过万!"]
l5 = l3 + l4
print(l5) # ['键盘敲烂', '工资过万!']
1、列表的遍历
可以使用 for
循环遍历列表中的每个元素
for e in [1,2,3,4,5]:
print(e)
# 1
# 2
# 3
# 4
# 5
l2 = [1,2,3,4,5,'6']
for e in range(len(l2)):
print(e,l2[e])
# 0 1
# 1 2
# 2 3
# 3 4
# 4 5
# 5 6
2、列表常用方法
1、添加
可以使用 append()
方法在列表末尾添加元素,或者使用 insert()
方法在指定位置插入元素,或者使用extend()方法添加某个列表中所有的元素。
s1 = [1,2,3,4,5,]
s1.append(9)
print(s1) # [1, 2, 3, 4, 5, 9]
s2 = [1,2,3,4,5,]
s2.insert(0,6) # 第一个参数是要插入元素的位置,即索引号,第二个为插入的元素
print(s2) # [6, 1, 2, 3, 4, 5]
s3 = [1,2]
s3.extend([3,4,5,6])
print(s3) # [1, 2, 3, 4, 5, 6]
2、删除
可以使用 remove()
方法根据值删除元素,或者使用 pop()
方法删除指定位置的元素(默认删除最后一个元素),或是clear()清空列表。
s1 = [1,2,3,4,5]
s1.remove(1)
print(s1) # [2, 3, 4, 5]
s2 = [1,2,3,4,5]
s2.pop()
print(s2) # [1, 2, 3, 4]
s3 = [1,2,3,4,5]
s3.pop(0)
print(s3) # [2, 3, 4, 5]
s4 = [1,2,3,4]
s4.clear()
print(s4) # []
3、排序
列表可以使用 sort()
方法进行原地排序(升序),sort(reverse=True)也可实现降序排列
reverse()也可以实现逆序
s1 = [3,1,6,2,9,5]
s1.sort()
print(s1) # [1, 2, 3, 5, 6, 9]
s2 = [3,1,6,2,9,5]
s2.sort(reverse=True)
print(s2) # [9, 6, 5, 3, 2, 1]
s = [1,2,3,4,5,6]
s.reverse()
print(s) # [6, 5, 4, 3, 2, 1]
index()返回指定元素的下表,第一次出现的那个,找不到会报错。
count():返回列表中的某个元素出现的次数。
s = [1,2,3,3,3,4,4]
print(s.index(3))
print(s.index(3)) # 只返回第一次出现的索引号
print(s.index(5)) # 找不到会报错
s = [1,2,3,3,3,4,4]
print(s.count(3),s.count(4)) # 3 2
二、元组(一种无序的、不重复的数据集合)
1、元组的创建
元组是 Python 中一种不可变的序列数据类型,类似于列表,但元组一旦创建,其元素不能被修改,添加或删除。元组使用圆括号() 定义,元素之间用逗号 ,
分隔。
t1 = ()
print(t1,type(t1)) # () <class 'tuple'>
# 单元素元组(注意:必须加逗号,否则会被识别为普通变量)
t2 = (42,) # 元组中就只有一个元素时候的正确创建格式
t3 = (42) # 这是一个整数,不是元组
print(t2,type(t2)) # (42,) <class 'tuple'>
print(t3,type(t3)) # 42 <class 'int'>
t4 = (1, 2, 3, "hello", True)
print(t4,type(t4)) # (1, 2, 3, 'hello', True) <class 'tuple'>
2、元组创建可以不加()
t = 1, 2, 3 # 等同于 (1, 2, 3)
print(t,type(t)) # 输出:(1, 2, 3)
3、元组是不可变的
t = (1, 2, 3)
t[0] = 99 # 报错!
1、元组的方法
由于元组不可变,它只有两个方法:
count()
:统计某个元素出现的次数
index()
:查找某个元素的索引
t = (1, 2, 2, 3, 2)
print(t.count(5)) # 0 一次没出现,返回0
print(t.count(2)) # 3
print(t.index(3)) # 3
# print(t.index(5)) # 找不到,报错
2、元组的常见的其他操作
1、 索引和切片
t = (10, 20, 30, 40, 50)
print(t[0]) # 10
print(t[-1]) # 50
print(t[1:3]) # (20, 30)
2、 遍历元组
t = (10, 20, 30, 40, 50)
for e in t:
print(e) #10,20,30,40,50
3、元组拼接
t1 = (1, 2)
t2 = (3, 4)
combined = t1 + t2 # (1, 2, 3, 4)
4、元组重复
r = ("a", "b") * 3
print(r) # ('a', 'b', 'a', 'b', 'a', 'b')
三、元组与列表的比较
特性 | 元组(Tuple) | 列表(List) |
---|---|---|
可变性 | ❌ 不可变 | ✅ 可变 |
语法 | (1, 2, 3) | [1, 2, 3] |
性能 | ⚡ 更快(适用于固定数据) | ⏳ 稍慢(适用于动态数据) |
用途 | 存储不变的数据(如配置、常量) | 存储可变的数据(如动态列表) |