欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)

 

上一篇:

下一篇: