Python中列表的相关操作
程序员文章站
2024-01-07 11:40:22
...
列表: 可以存储多个任意类型的数据,好比是一个容器,列表属于容器类型
列表的表现形式:[x,y, ....]
列表的类型: list
# 列表可以存储多个任意类型的数据
my_list = [4, 3.14, True, range(10), 'hi python', [1, 3], 100]
print(my_list, type(my_list))
# 获取列表中的某个数据,可以通过下标来完成
result = my_list[0]
print(result)
result = my_list[-1]
print(result)
# 扩展:列表也可以根据切片取值
result = my_list[:3]
print(result, type(result))
"""
[4, 3.14, True, range(0, 10), 'hi python', [1, 3], 100] <class 'list'>
4
100
[4, 3.14, True] <class 'list'>
进程已结束,退出代码0
"""
# 练习1:定义一个列表,可以存储多个已知的数据类型并输出显示这个列表
my_list=[1,3,4,"school",True,range(10),"student",[8,10],]
print(my_list,type(my_list))
# 练习2:定义一个列表,根据下标获取第一个和第二个数据
my_list=[1,"school",3,4,True,range(10),"student",[8,10],]
result1=my_list[0]
result2=my_list[1]
print(result1,type(result1))
print(result2,type(result2))
# 练习3:定义一个列表,根据下标获取第一个到第四个数据
my_list=[1,"school",3,4,True,range(10),"student",[8,10],]
result=my_list[:4]
print(result)
'''
[1, 3, 4, 'school', True, range(0, 10), 'student', [8, 10]] <class 'list'>
1 <class 'int'>
school <class 'str'>
[1, 'school', 3, 4]
进程已结束,退出代码0
'''
列表的遍历
name_list = ["青牛精", "狮子精", "白骨精"]
# 需求:对列表进行遍历,一次获取列表中的每一个数据
# for循环遍历列表 ========
for value in name_list:
print(value)
print("===================")
# while循环遍历列表
index = 0
# 获取列表的中元素的个数,其实列表的长度
# result = len(name_list)
# print(result)
while index < len(name_list):
# 根据下标获取对应的数据
data = name_list[index]
print(index, data)
index += 1
# 总结:遍历列表中的数据,推荐大家使用for循环,因为更加简单和方便
'''
青牛精
狮子精
白骨精
===================
0 青牛精
1 狮子精
2 白骨精
进程已结束,退出代码0
'''
列表的相关操作-添加数据
列表添加数据的三种操作方式
1. append 表示在列表末尾追加一个数据
2. insert 表示根据指定下标插入一个指定的数据
3. extend 表示在列表末尾扩展一组数据
ame_list = ["宋江", "林冲", "鲁智深"]
print(name_list)
#['宋江', '林冲', '鲁智深']
# append的使用 ========
name_list.append("杨志")
print(name_list)
#['宋江', '林冲', '鲁智深', '杨志']
# insert的使用 ========
name_list.insert(0, "晁盖")
print(name_list)
['晁盖', '宋江', '林冲', '鲁智深', '杨志']
# extend的使用
my_list = ["杨雄", "石秀", "时迁"]
# name_list.append(my_list)
# print(name_list)
# 把my_list列表中的每一个数据都追加到name_list列表里面
name_list.extend(my_list)
print(name_list)
#['晁盖', '宋江', '林冲', '鲁智深', '杨志', '杨雄', '石秀', '时迁']
列表的相关操作-修改数据
name_list = ["宋江", "武松", "鲁智深"]
print(name_list)
# 根据下标来修改列表中的数据
name_list[0] = "及时雨宋江"
print(name_list)
name_list[-1] = "花和尚鲁智深"
print(name_list)
name_list = ["宋江", "武松", "鲁智深"]
print(name_list)
# 扩展: 通过切片修改多个数据
name_list[-2:] = ["林冲", "吴用"]
print(name_list)
'''
['宋江', '武松', '鲁智深']
['及时雨宋江', '武松', '鲁智深']
['及时雨宋江', '武松', '花和尚鲁智深']
['宋江', '武松', '鲁智深']
['宋江', '林冲', '吴用']
'''
列表的相关操作-删除数据
# 从列表中删除数据: del , pop, remove
name_list = ["刘备", "关羽", "张飞", "孙权", "曹操"]
print(name_list)
#['刘备', '关羽', '张飞', '孙权', '曹操']
# del 根据下标删除指定数据 ====
del name_list[1]
print(name_list)
#['刘备', '张飞', '孙权', '曹操']
# pop 根据下标删除数据并返回删除的这个数据 ====
name = name_list.pop(-2)
print(name, name_list)
#孙权 ['刘备', '张飞', '曹操']
# 提示:pop方法在删除列表中数据的时候,如果没有指定下标则默认删除的是最后一个数据
name = name_list.pop()
print(name, name_list)
# 曹操 ['刘备', '张飞']
# remove 根据指定数据从列表中删除
name_list.remove("张飞")
print(name_list)
#['刘备']
# 使用remove从列表中删除数据的时候,指定删除的数据必须在列表中存在
name_list.remove("张苞")
print(name_list)
#在列表中不存在则报错ValueError: list.remove(x): x not in list
列表的相关操作-查看数据
1. 根据下标查看
2. 根据切片查看
3. 遍历查看列表中的每一个数据
name_list = ['贾宝玉', '林黛玉', '王熙凤']
# 1. 根据下标查看
value = name_list[-1]
print(value)
#王熙凤
# 2. 根据切片查看
result = name_list[:2]
print(result)
#['贾宝玉', '林黛玉']
print("========")
# 3. 遍历查看列表中的每一个数据
for data in name_list:
print(data)
'''
贾宝玉
林黛玉
王熙凤
'''
# 扩展: del 结合切片 可以删除某一部分数据
del name_list[-2:]
print(name_list)
#['贾宝玉']
列表结合in和not in关键字使用
name_list = ["西施", "貂蝉", "王昭君", "杨玉环"]
# in : 判断指定数据在列表里面, 在返回True,否则返回False
result = "西施" in name_list
print(result)
'''True'''
if "西施" in name_list:
print("西施在列表里面")
'''西施在列表里面'''
if "张飞" in name_list:
print("张飞在列表里面")
else:
print("张飞不在name_list 里面")
'''张飞不在name_list 里面'''
# not in : 判断指定数据不在列表里面, 不在返回True,否则返回False
if "关羽" not in name_list:
print("关羽不在列表里面")
'''关羽不在列表里面'''
if "杨玉环" not in name_list:
print("杨玉环不在name_list里面")
else:
print("杨玉环在name_list里面")
'''杨玉环在name_list里面'''
列表结合index和count方法的使用
index: 根据指定数据获取该数据在列表中的下标
count: 根据指定数据在列表中统计该数据出现的次数
my_list = ["A", 'C', "B", 2, 1, 'A']
result = my_list.index("B")
print(result)
result = my_list.index(2)
print(result)
# 1. 要查找的数据
# 2. 开始下标
# 3. 结束下标(不包含)
result = my_list.index("C", 0, 2)
print(result)
result = my_list.count("A")
print("A出现了%d次" % result)
result = my_list.count(5)
print("5出现了%d次" % result)
'''
2
3
1
A出现了2次
5出现了0次
'''
列表的排序和反转
num_list = [3, 0, 2, 4]
# 使用sort方法进行排序, 提示:调用sort方法后没有返回值,不需要使用变量保存
num_list.sort() # 默认是升序
print("排序后:", num_list)
# 对排序后的数据进行反转,实现降序排列
num_list.reverse()
print("反转后的数据为:", num_list)
# 对列表进行降序排序的简写方式
# reverse=True 表示排序完成以后再对列表进行反转实现降序排列
num_list.sort(reverse=True)
print(num_list)