[Python 基础课程]列表
列表
定义:列表是 Python 中一种有序、可变的数据集合,可以存储任意类型的元素
现实类比:购物清单、待办事项列表、排行榜
特点:用方括号 [] 表示,元素之间用逗号分隔,支持索引和切片
创建列表
直接使用 [] 这种方式创建:
list1 = ['Python', 'Java', 2001, 4.01]
使用 list() 构造函数创建:
my_list = list() # 创建一个空列表
my_list = list("abc") # 从可迭代对象创建,结果为 ['a', 'b', 'c']
还可以使用 range 函数或列表推导式进行创建:
numbers = list(range(5)) # [0, 1, 2, 3, 4]
squares = [x ** 2 for x in range(5)] # [0, 1, 4, 9, 16]
even_numbers = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]
访问列表元素
访问列表中的元素可以使用索引访问(和其他大部分语言一样,索引从 0 开始),还能使用列表切片这种更高级的语法糖来实现切出列表中的目标元素。
fruits = ["apple", "banana", "cherry", "date"]print(fruits[0]) # "apple"
print(fruits[-1]) # "date"
print(fruits[1:3]) # ["banana", "cherry"]
print(fruits[::-1]) # 反转列表
:::warning
索引越界会引发 IndexError,切片不会修改原列表,而是返回新列表
:::
修改列表
可以修改列表元素、删除列表元素、添加列表元素等。
# 修改元素
fruits[1] = "blueberry"# 添加元素
fruits.append("elderberry") # 末尾添加
fruits.insert(2, "coconut") # 指定位置插入# 删除元素
del fruits[0] # 删除指定位置
fruits.remove("date") # 删除第一个匹配项
popped = fruits.pop() # 删除并返回最后一个元素
列表运算
这些列表运算特性有点奇怪,大家了解下:
# 拼接
combined = [1, 2] + [3, 4]# 重复
numbers = [0] * 5# 成员检测
if "apple" in fruits:print("苹果在列表中")
列表常用方法
方法 | 描述 | 实例 |
---|---|---|
len() | 获取列表中的元素个数 | len(fruits) |
sort() | 排序 | fruits.sort() |
reverse() | 反转列表 | fruits.reverse() |
index() | 查找指定元素在列表中第一次出现的位置的下标 | fruits.index(“cherry”) |
count() | 统计指定元素在列表中出现的次数 | fruits.count(“cherry”) |