在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)

在这里插入图片描述

更多推荐