🍁本次博客主要总结以下python中,列表的主要操作,便于构成知识网络体系。
列表定义
🍁Python列表是一种有序的和可更改的集合数据类型,列表中允许存在重复的成员, 其中的元素可以是任意类型,包括整数、浮点数、字符串以及其他对象。列表使用方括号 [] 表示,元素之间用逗号分隔。可以通过索引位置访问和修改列表中的元素。列表支持各种操加粗样式作,例如添加元素、删除元素、拼接列表、排序等。
列表创建
空列表
方式1:
使用方括号[]创建
b = []
print(type(b)) # 查看类型 <class 'list'>
print(b) # []
方式2:
使用list(),进行创建
c = list()
print(type(c)) # 查看类型 <class 'list'>
print(c) # []
非空列表
- 在[]中设置初始值,如:
list1 = [1, 2, 3, 4]
print(type(list1)) # <class 'list'>
print(list1) # [1, 2, 3, 4]
- 可以一次性存储多个数据,且可以为不同数据类型,如:
list1 = ["张三", "李四", "王五", "赵六", "1234", 1, [1, 2, 3], {1}, (1, 2)]
print(type(list1)) # <class 'list'>
print(list1) # ["张三", "李四", "王五", "赵六", "1234", 1, [1, 2, 3], {1}, (1, 2)]
列表的常用操作
列表可以存储多个数据,我们可以对这些数据进行,增、删、改、查。
增加数据
增加指定数据到列表中,主要有下面三种方法,如:
🍂1. append()方法:列表结尾追加数据,使用的频率比较多
🍂使用方法:列表序列.append(添加的数据)
list1 = [1, 2, 3, 4]
list1.append(5)
print(list1) # [1, 2, 3, 4, 5]
如果append()追加的数据是⼀个序列,则追加整个序列到列表,比如:
list1 = ["张三", "李四", "王五", "赵六"]
list2 = ["左轮", "篮球", "两年半"]
list1.append(list2)
print(list1) # ['张三', '李四', '王五', '赵六', ['左轮', '篮球', '两年半']]
🪶2. extend () 方法 : 列表结尾追加数据,如果extend()添加的数据是一个序列,则将这个序列数据逐一添加到列表
🪶使用方法:列表序列.extend(数据)
li1 = ["张三", "李四", "王五", "赵六"]
li2 = ["左轮", "篮球", "两年半"]
li1.extend(li2)
print(li1) # ['张三', '李四', '王五', '赵六', '左轮', '篮球', '两年半']
🍁3. insert () 方法:指定位置新增数据。
🍁使用方法:列表序列.insert(位置下标, 数据)
li3 = ["张三", "李四", "王五", "赵六"]
li3.insert(1, "关羽")
print(li3) # ["张三", "关羽", "李四", "王五", "赵六"]
注:列表是可变的类型 – 修改之后,内存地址不变
list3 = ["张三", "李四", "王五", "赵六"]
print(id(list3)) # 内存地址一样 # 2532698568000
list3.append("坤哥")
print(id(list3)) # 内存地址一样 # 2532698568000
删除数据
删除列表当中的数据,主要有以下几种方法,如:
🎊1. del方法:
a 、删除整个列表
li1 = ["张三", "李四", "王五", "赵六"]
del li1
print(li1) # 删除整个列表后,打印会报异常
b、删除指定数据(根据索引删除)
li1 = ["张三", "李四", "王五", "赵六"]
del li1[1] # 删除指定数据
print(li1) # ["张三", "王五", "赵六"]
说明:这里索引也叫下标,如果不知道,什么是索引的话,可以看我上一篇博客字符串操作,其中与字符串不同的是,列表的一个数据,可以是数值,字符串,列表,字典,元组,集合等。
✨2. pop () : 空号()内可以,填入列表的索引
✨删除指定下标的数据(默认为最后⼀个),并返回该数据。
li2 = ["张三", "李四", "王五", "赵六"]
li2.pop() # ()未填入值,默认删除是最后一个
li2.pop(0) # 删除第一个
print(li2) # ['李四', '王五']
🍁3. remove()方法 : 移除列表中某个数据的第⼀个匹配项。
🍁使用方法:列表序列.remove(要删除的数据)
li3 = ["张三", "李四", "王五", "赵六", "王五"]
li3.remove("王五") # 只会删除第一个王五
print(li3) # ['张三', '李四', '赵六', '王五']
如果要删除所有的,相同数据,我们可以通过使用循环,比如:
方法1:
li3 = ["张三", "李四", "王五", "赵六", "王五"]
for i in range(li3.count("王五")): # 通过count函数,统计“王五”的次数,有几个就循环几次
li3.remove("王五") # 每次循环删除王五
print(li3) # ['张三', '李四', '赵六']
方法2:第一种的优化,加入输入数据,和判断输入的数据是否在列表中,实现自定义删除。
li3 = ["张三", "李四", "王五", "赵六", "王五"]
name = input("请输入你要删除的名字:")
if name in li3:
for i in range(li3.count(name)):
li3.remove(name)
print(li3)
else:
print(f"{name}--不在列表当中")
🍂4. clear(): 清空列表
li4 = ["张三", "李四", "王五", "赵六", "王五"]
li4.clear() # 清空列表
print(li4) # 打印空列表 []
修改数据
修改列表当中的数据,主要有以下几种方法,如:
🍧1. 修改指定下标的数据
li1 = ["张三", "李四", "王五", "赵六", "王五"]
li1[0] = "小宋"
print(li1) # ['小宋', '李四', '王五', '赵六', '王五']
🍧2. reverse(): 逆置,将列表中的元素,进行反转
🍧使用方法:列表序列.reverse()
li2 = [1, 3, 5, 2, 4, 6]
li2.reverse()
print(li2) # [6, 4, 2, 5, 3, 1]
🍧3. sort(): 排序
🍧reverse表示排序规则,reverse=True降序,reverse=False升序(默认)
🍧使用方法:列表序列.sort(reverse=False)
li3 = [1, 8, 9, 2, 4, 6]
li3.sort() # 不写默认升序
print(li3) # [1, 2, 4, 6, 8, 9]
li3.sort(reverse=True) # reverse=True降序
print(li3) # [9, 8, 6, 4, 2, 1]
li3.sort(reverse=False) # reverse=False升序
print(li3) # [1, 2, 4, 6, 8, 9]
🪶4. copy()复制:复制一个列表
使用方法:要复制的列表.copy()
li4 = [1, 2, 5, 89, 34, 3]
print(li4) # [1, 2, 5, 89, 34, 3]
new_li4 = li4.copy()
print(new_li4) # [1, 2, 5, 89, 34, 3]
查找数据
查找列表当中的数据,主要包括了下面几种方法,如:
✨1. 根据下标查找
通过下标访问操作符[]可以获取指定下标位置的元素。比如:
list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(list2[1]) # 李四
✨2. index(): 查找某个数据是否存在列表中,如果存在,返回指定数据所在位置的下标
✨使用方法:列表序列.index(数据, 开始位置下标, 结束位置下标)
list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(list2.index("李四", 0, 4)) # 1
注:在使用index时,开始位置下标,结束位置下标位置是可以省略的,其次,如果查找的数据不存在,将会报异常。
list2 = [1, 2, 3, 4, 5]
print(list2.index(2)) # 1
print(list2.index(10) # 不存在,报异常
✨3. count():统计指定数据在当前列表中出现的次数。
list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(list2.count("李四")) # 2
✨4. len ():计算访问列表⻓度,即列表中数据的个数。
list2 = ["张三", "李四", "李四", "赵六", "123456"]
print(len(list2)) # 5
✨5. in与not in用法
in:判断指定数据在某个列表序列,如果在返回True,否则返回False
list2 = ["张三", "李四", "李四", "赵六", "123456"]
if "张三" in list2:
print("张三在里面")
not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False
if "王五" not in list2:
print("王五打球去了")
列表的循环遍历
for循环
- 依次打印列表中的各个数据
li1 = [1, 2, 3, 4, 5]
for data in li1: # 遍历列表
print(data)
- 使用遍历下标的方式,依次打印列表中的各个数据
li1 = [1, 2, 3, 4, 5]
for data in range(len(li1)): # 遍历下标
print(li1[data]) # 通过下标方式打印数据
- 将列表中遍历出来的数据,都加一个姓名:
li1 = ["张三", "李四", "王五", "赵六", "王五"]
li2 = [] # 定义空列表
for data in li1: # 遍历列表
print(data)
var = "姓名:" + str(data) # 将列表中遍历出来的数据,都加一个姓名:
li2.append(var)
print(li2) # ['姓名:张三', '姓名:李四', '姓名:王五', '姓名:赵六', '姓名:王五']
补充:也可以使用zip方法
zip接收多个可迭代对象参数,在返回一个迭代器,可以把不同可迭代对象的元素组合起来。
但是,合并对象元素数量要一致
li1 = ["姓名:", "姓名:", "姓名:", "姓名:", "姓名:"]
li2 = ["张三", "李四", "王五", "赵六", "王五"]
li3 = list(zip(li1, li2))
print(li3)
while循环
说明:这里通过len获取列表元素的个数
依次打印列表中的各个数据
li1 = ["张三", "李四", "王五", "赵六", "王五"]
i = 0
while i < len(li1): # 通过列表长度,判断循环的次数
print(li1[i]) # 依次输出列表对应下标的值
i += 1
列表的嵌套
列表里面嵌套列表,需要先拿出需要值所在的列表,在拿需要的值
name_list = [['张三', '李四', '阿坤'], ['唱', '跳', '篮球'], ['甲', '乙', '丙']]
print(name_list[1][2]) # 篮球
print(name_list[0][2]) # 阿坤
print(name_list[2][1]) # 乙
拼接列表
使用 + 号拼接
li4 = [1, 2, 5, 89, 34, 3]
li5 = ["a", "b", "c"]
print(li4 + li5) # [1, 2, 5, 89, 34, 3, "a", "b", "c"]
欢迎小伙伴们参考借阅,希望对小伙伴们有一定的帮助
如果觉得不错,请一键三连支持一下博主~~~~