【Python入门】Python中的列表list
·
在Python中,以下5种数据类型均为数据容器,都可以一次性存储多个数据(元素):
- 列表(list)
- 字符串(str)
- 元组(tuple)
- 集合(set)
- 字典(dict)
1. list介绍
list的定义:
# 定义
列表名称 = [元素1,元素2,元素3,元素4,元素5...]
# 示例
data = [12,32,53,63,73,13]
特点:
- 可以存储不同类型的元素
- 元素有序、可以重复、元素可以修改
- 正向索引,下标从0开始
- 反向索引,下标从-1开始
代码示例及运行结果:
# 定义一个列表list
list_data = [11, 12, 32, 45, 65, 76, "data", "SSSSS", True]
print(type(list_data))
# 访问列表元素
# 以正向索引的维度,获取列表第一个元素
print("列表中的第一个元素是:", list_data[0])
# 以反向索引的维度,获取列表第一个元素
print("列表中的第一个元素是:", list_data[-9])
# 修改列表元素
list_data[2] = "修改的元素"
print("修改元素后的列表:", list_data)
# 删除列表元素
del list_data[1]
print("删除元素后的列表:", list_data)
# 遍历列表中的元素
for item in list_data:
print("当前输出的元素是:",item)

2. list中的切片
切片:指对要处理的数据截取其中一部分的操作,称之为切片。
列表、字符串、元组都支持切片操作。
语法:
list_data[start:end:step]
特点:
- start:开始索引,不指定默认为0(第一个元素的索引)
- end:结束索引,不指定默认为列表长度(直到列表末尾)
- step:步长,不指定默认为1,可以省略不写
- 不包含结束索引位置对应的元素
代码示例及运行结果:
# 定义一个列表list
list_data = [11, 12, 32, 45, 65, 76, "data", "SSSSS", True]
# list的切片1,省略步长
new_list = list_data[0:3]
print(f"切片得到的list:{new_list}")
# list的切片2,不省略步长
new_list = list_data[0:3:1]
print(f"切片得到的list:{new_list}")
# list的切片3,开始索引和结束索引一样
new_list = list_data[3:3:1]
print(f"切片得到的list:{new_list}")
# list的切片4,改变步长
new_list = list_data[2:6:2]
print(f"切片得到的list:{new_list}")

3. list中的常见方法
列表(list)中一些常见常用的方法:
| 方法 | 作用 | 示例 |
|---|---|---|
| append() | 在列表的尾部追加元素 | list_data.append(10000) |
| insert() | 在指定索引之前,插入该元素 | list_data.insert(0,1293) |
| remove() | 移除列表中第一个匹配到的值 | list_data.remove(12) |
| pop() | 删除列表中指定索引位置的元素(如果未指定索引,默认删除最后一个) | list_data.pop(2) / list_data.pop() |
| sort() | 对列表进行排序(列表元素的数据类型一致,才可以进行排序) | list_data.sort() |
| reverse() | 反转列表元素 | list_data.reverse() |
| min() | 获取最小值 | min(list_data) |
| max() | 获取最大值 | max(list_data) |
| sum() | 求和 | sum(list_data) |
| len() | 统计列表元素个数 | len(list_data) |
代码示例及运行结果:
# 定义一个列表list
list_data = [11, 12, 32, 45, 65, 76]
# 追加元素
list_data.append(10000)
print("append()执行后的列表:", list_data)
# insert元素
list_data.insert(0, 1293)
print("insert()执行后的列表:", list_data)
# remove元素
list_data.remove(12)
print("remove()执行后的列表:", list_data)
# 删除pop()元素
list_data.pop(2)
print("pop()执行后的列表:", list_data)
# sort()排序
list_data.sort()
print("sort()执行后的列表:", list_data)
# reverse()反转列表元素
list_data.reverse()
print("reverse()执行后的列表:", list_data)
# 获取最小值min()
min_data = min(list_data)
print("最小值是:", min_data)
# 获取最大值max()
max_data = max(list_data)
print("最大值是:", max_data)
# 求和sum()
total_data = sum(list_data)
print("列表元素和是:", total_data)
# 获取元素个数 len()
count = len(list_data)
print("列表元素个数是:", count)

4. list中的解包与组包
解包:将列表这一类容器解开成一个一个独立的元素。
组包:将多个值合并到一个容器。
代码示例及运行结果:
# 定义列表list
list01 = [11, 12, 32, 45, 65, 76]
list02 = [32, 82, 37, 42, 68, 96]
# 方式一,利用+运算符合并上面的list01、list02
list03 = list01 + list02
print("利用+运算符合并后的list:", list03)
# 方式二,利用*进行解包操作,合并上面的list01、list02
list04 = [*list01, *list02]
print("利用*进行解包操作,合并后的list:", list03)
# 判断一个元素是否在列表中,语法为:元素 in 列表 或者 元素 not in 列表
# 对合并后的列表进行去重
new_list = []
for item in list04:
if item not in new_list:
new_list.append(item)
print("去重后的列表:", new_list)

5. 列表推导式
含义:列表推导式指的是按照一定规则快速生成一个列表的方法
格式1:列表名称 = [要插入列表的数据 for i in 列表]
格式2:列表名称 = [要插入列表的数据 for i in 列表 if 条件]
代码示例及运行结果:
# 生成1-10的平方列表
# 传统方式
num_list = []
for i in range(1, 11):
num_list.append(i ** 2)
print("传统方式生成的平方列表:", num_list)
# 列表推导式
num_list01 = [i ** 2 for i in range(1, 11)]
print("列表推导式方式生成的平方列表:", num_list01)
# 从num_list01列表中,提取偶数,并计算偶数平方,生成平方列表
num_list02 = [i ** 2 for i in num_list01 if i % 2 == 0]
print("从num_list01列表中,提取偶数,并计算偶数平方,生成的平方列表:", num_list02)

更多推荐

所有评论(0)