目录
1、列表
1.1 列表的定义
列表(List) 是一种用于存储多个项目的可变数据结构。它允许你将不同类型的元素(如数字、字符串、甚至其他列表)组织在一起,并按索引访问
列表使用方括号 []
来表示,元素之间用逗号 ,
分隔
# 定义一个包含整数的列表
my_list = [1, 2, 3, 4, 5]
# 定义一个包含字符串的列表
fruits = ["apple", "banana", "cherry"]
# 定义一个混合类型的列表
mixed_list = [1, "hello", 3.14, True]
1.2 列表的特点
- 有序性:列表中的元素按插入顺序存储,可以通过索引访问。
- 可变性:列表是可变的,可以在定义之后修改它的内容。
- 可以包含不同类型的元素:列表中的元素可以是不同的数据类型(整数、字符串、浮动等)。
- 支持重复元素:列表中可以包含重复的元素。
2、列表的常用语法
2.1 常用操作
访问列表元素:通过索引来访问列表中的元素,索引从 0 开始
my_list = [10, 20, 30, 40, 50]
print(my_list[0]) # 输出: 10
print(my_list[2]) # 输出: 30
负索引:列表也支持负索引,表示从后向前访问元素
my_list = [10, 20, 30, 40, 50]
print(my_list[-1]) # 输出: 50
print(my_list[-2]) # 输出: 40
切片:可以通过切片操作来获取列表的部分内容
my_list = [10, 20, 30, 40, 50]
print(my_list[1:4]) # 输出: [20, 30, 40]
修改元素:可以通过索引修改列表中的某个元素
my_list = [10, 20, 30, 40, 50]
my_list[2] = 100
print(my_list) # 输出: [10, 20, 100, 40, 50]
2.2 列表常用的方法
append(x)
:在列表末尾添加一个元素 x
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # 输出: [1, 2, 3, 4]
extend(iterable)
:通过添加一个可迭代对象中的所有元素来扩展列表
my_list = [1, 2, 3]
my_list.extend([4, 5])
print(my_list) # 输出: [1, 2, 3, 4, 5]
insert(i, x)
:在指定位置 i
插入元素 x
my_list = [1, 2, 3]
my_list.insert(1, 'a')
print(my_list) # 输出: [1, 'a', 2, 3]
remove(x)
:删除列表中第一个值为 x
的元素。如果元素不存在,会抛出 ValueError
my_list = [1, 2, 3, 2]
my_list.remove(2)
print(my_list) # 输出: [1, 3, 2]
pop([i])
:删除并返回指定位置的元素。如果不指定位置,默认删除最后一个元素
my_list = [1, 2, 3]
popped_item = my_list.pop(1)
print(popped_item) # 输出: 2
print(my_list) # 输出: [1, 3]
clear()
:移除列表中的所有元素
my_list = [1, 2, 3]
my_list.clear()
print(my_list) # 输出: []
index(x)
:返回列表中第一个值为 x
的元素的索引。如果元素不存在,会抛出 ValueError
my_list = [1, 2, 3]
print(my_list.index(2)) # 输出: 1
count(x)
:返回列表中元素 x
出现的次数。
my_list = [1, 2, 2, 3]
print(my_list.count(2)) # 输出: 2
sort()
:对列表进行排序,默认升序排列。如果要降序排序,可以指定 reverse=True
my_list = [3, 1, 2]
my_list.sort()
print(my_list) # 输出: [1, 2, 3]
reverse()
:反转列表中的元素
my_list = [1, 2, 3]
my_list.reverse()
print(my_list) # 输出: [3, 2, 1]
copy()
:返回列表的一个浅拷贝
my_list = [1, 2, 3]
new_list = my_list.copy()
print(new_list) # 输出: [1, 2, 3]
2.3 列表常用的函数
len(list)
:返回列表中元素的数量
my_list = [1, 2, 3]
print(len(my_list)) # 输出: 3
min(list)
:返回列表中最小的元素
my_list = [1, 2, 3]
print(min(my_list)) # 输出: 1
max(list)
:返回列表中最大的元素
my_list = [1, 2, 3]
print(max(my_list)) # 输出: 3
sum(list)
:返回列表中所有元素的和(要求元素为数值类型)
my_list = [1, 2, 3]
print(sum(my_list)) # 输出: 6
any(iterable)
:如果可迭代对象中有任何元素为 True
,返回 True
,否则返回 False
my_list = [0, 1, 2]
print(any(my_list)) # 输出: True
all(iterable)
:如果可迭代对象中的所有元素都为 True
,返回 True
,否则返回 False
my_list = [1, 2, 3]
print(all(my_list)) # 输出: True
sorted(iterable)
:返回一个排序后的新列表,而不修改原列表
my_list = [3, 1, 2]
sorted_list = sorted(my_list)
print(sorted_list) # 输出: [1, 2, 3]
print(my_list) # 原列表不变: [3, 1, 2]
list(iterable)
:将一个可迭代对象转换为列表
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
print(my_list) # 输出: [1, 2, 3]
3、列表推导式
列表推导式(List Comprehension)是 Python 中的一种简洁、高效的创建列表的方法。它允许你通过一行代码创建一个新的列表,这个列表通常基于某些序列或可迭代对象的元素,并且可以在其中进行条件过滤或应用函数。列表推导式使代码更加简洁、易读,同时避免了传统循环方式中多行代码的冗长
[expression for item in iterable]
- expression:对每个元素应用的操作或计算结果,通常是基于
item
的某种操作 - item:从可迭代对象
iterable
中取出的每个元素 - iterable:可以是任何支持迭代的对象,比如列表、元组、字符串、字典等
示例 :创建一个包含平方数的列表
假设我们想创建一个包含从 1 到 5 的每个数的平方的列表
squares = [x**2 for x in range(1, 6)]
print(squares)
#输出 [1, 4, 9, 16, 25]
在这个例子中,x**2
是表达式,for x in range(1, 6)
是从 1
到 5
遍历所有数字。每个数字 x
都会被平方,并放入新的列表 squares
中
---------------------------------------------------------------------------------------------------
**使用条件表达式**
列表推导式不仅可以应用在每个元素上进行计算,还可以使用条件语句来筛选特定的元素。条件语句可以放在推导式的末尾
示例 :筛选出偶数的平方
如果我们想要在生成平方数时只考虑偶数,可以在列表推导式中加入一个条件表达式
even_squares = [x**2 for x in range(1, 6) if x % 2 == 0]
print(even_squares)
#输出 [4, 16]
在这个例子中,if x % 2 == 0
是条件表达式,意味着只有当 x
是偶数时,才会将 x**2
加入到结果列表中