Python中的列表是一种强大且常用的数据结构,用于存储有序的元素集合。让我们快速了解列表的基本概念,并发现它在数据处理中的重要作用!
📚 创建列表
创建一个列表,只需要把逗号分隔的不同数据项使用方括号[]括起来即可。
- 创建空列表
list0=[]
- 创建非空列表
list1 = ['Baidu', 'Alibaba', 'Tencent']
- 使用
list()
函数创建列表list2 = list() #创建一个空列表
- 使用列表推导式创建列表
运行结果如下:list3 = [ x*x for x in range(1,10)] # 10以内的平方 print(list)
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。[1, 4, 9, 16, 25, 36, 49, 64, 81]
🔢访问列表
列表中的每个元素都有一个唯一的索引值,可以使用该索引来访问和修改元素。
- 正向索引:从左向右,第一项的索引为 0,第二项的索引为1,依次类推
list = ["apple", "banana", "cherry"] print(list[0]) # 访问列表中正向索引序号为0的列表元素 print(list[2]) # 访问列表中正向索引序号为2的列表元素
运行结果:
apple
cherry
- 逆向索引:从右向左,-1 表示最后一个项目,-2 表示倒数第二个项目,依此类推
list = ["apple", "banana", "cherry"]
print(list[-1]) # 访问列表中逆向索引序号为-1的列表元素
print(list[-2]) # 访问列表中逆向索引序号为-2的列表元素
运行结果:
cherry
banana
🔄 列表切片
- 语法格式
列表名[<开始索引>:<结束索引>]
- 表示搜索将从开始索引(包括)开始,到结束索引(不包括)结束。
- 搜索时若不指定索引开始,则默认从索引0开始
- 搜索时若不指定索引结束,则到索引-1(包括)结束。
- 指定范围后,返回值将是包含指定列表项的新列表。
运行结果list = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] print(list[2:5]) # 访问列表中从序号2开始到序号5(不包括)的列表元素 print(list[:3]) # 访问列表中从序号0开始到序号3(不包括)的列表元素 print(list[3:]) # 访问列表中从序号3开始的所有列表元素 print(list[:]) # 访问所有的列表元素
['cherry', 'orange', 'kiwi'] ['apple', 'banana', 'cherry'] ['orange', 'kiwi', 'melon', 'mango'] ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
🔄更改列表
- 通过索引号来更改指定列表元素.
语法格式:列表名[索引] = 值
list = ["apple", "banana", "cherry", "orange"]
list[0] = '苹果'
print(list)
运行结果
['苹果', 'banana', 'cherry', 'orange']
- 通过切片来更改列表元素
语法格式:列表名[索引范围] = 值,具体可以理解为用后面几个值替换索引范围内的几个列表项
list1 = ["apple", "banana", "cherry", "orange"]
list1[:2] = ['苹果','香蕉','樱桃'] # 使用指定的3个元素替换序号0-1的2个列表项
print(list1)
运行结果:
['苹果', '香蕉', '樱桃', 'cherry', 'orange']
➕ 增加列表
- 可以使用
append()
方法在列表末尾添加新元素。
语法格式:列表名.append(值),该方法默认是在列表的末尾增加元素
list = ["apple", "banana", "cherry"]
list.append("orange") # 在列表末尾添加元素"orange"
print(list)
运行结果:
['apple', 'banana', 'cherry', 'orange']
- 使用 insert() 方法追加列表元素
语法格式:列表名.insert(索引,值)
该方法可以在列表的指定位置增加元素,增加后原位置及其后面的元素自动后移
list = ["apple", "banana", "cherry"]
list.insert(1,"orange") # 在列表正向索引序号1处加元素"orange"
print(list)
- 使用 extend() 方法追加列表元素
语法格式:列表名.extend(序列)
该方法可以将序列中的所有值,一次性添加在列表的末尾
list1 = ["apple", "banana", "cherry"]
list2 = ['orange', 'kiwi', 'melon', 'mango']
list1.extend(list2) # 在list2中的元素全不追加至list1的末尾
print(list1)
运行结果:
['apple', 'banana', 'cherry', 'orange', 'kiwi', 'melon', 'mango']
➖ 删除列表
- 使用 remove() 方法可以删除列表中指定的元素。
语法格式:列表名.remove(元素)
当删除的目标值元素有多个时,每次执行只能删除一个元素,且删除的是索引位置最小的那个。
list = ["apple", "banana", "cherry","apple"]
list.remove("apple") # 删除列表中第一个"apple"元素
print(list)
运行结果:
['banana', 'cherry', 'apple']
- 使用 pop() 方法删除列表元素
语法格式:
- 列表名.pop(),弹出末尾元素,pop不传参数是弹出最后一个元素,
- 列表名.pop(索引),弹出索引位置元素
list = ["apple", "banana", "cherry","apple"]
list.pop() # 弹出末尾元素
print(list)
list.pop(0)
print(list)
运行结果:
['apple', 'banana', 'cherry']
['banana', 'cherry']
- 使用 del 关键字删除
- 语法格式:del 列表名,删除整个列表(从内存中删除)
- del 列表名[索引],删除指定索引位置的列表元素
- del 列表名[索引范围],删除指定索引范围内的列表元素
list1 = ["apple", "banana", "cherry","apple"]
del list1
print(list1)
list2 = ["apple", "banana", "cherry","apple"]
del list2[1]
print(list2)
运行结果:
NameError: name 'list' is not defined
['apple', 'cherry', 'apple']
- 使用 clear() 删除
语法格式:列表名.clear(),清除列表中所有元素(清除后仍存在空列表)
list = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
list.clear()
print(list)
运行结果:
[]
🎲 列表排序
- 使用 sort() 方法对列表进行排序
- 语法格式:列表名.sort(),将列表元素正序排序(该排序更改列表的本身)
注意 sort() 排序本身是区分大小写的,先排序首字母为大写的,再排序首字母为小写的
list = ["Melon", "banana", "apple","Cherry", "orange", "kiwi", "mango"]
list.sort() # 按照ASCLL排序,先排序首字母为大写的,再排序首字母是小写的
print(list)
运行结果:
['Cherry', 'Melon', 'apple', 'banana', 'kiwi', 'mango', 'orange']
- 通过参数 key=str.lower 使排序不区分大小写
运行结果:list = ["Melon", "banana", "apple","Cherry", "orange", "kiwi", "mango"] list.sort(key=str.lower) # 对字符串排序不区分大小写,相当于将所有元素转换为小写,再排序 print(list)
['apple', 'banana', 'Cherry', 'kiwi', 'mango', 'Melon', 'orange']
- 通过参数 reverse=True 来使sort() 实现倒序排序,反之reverse=False 则为正序
list = ["melon", "banana", "apple","cherry", "orange", "kiwi", "mango"]
list.sort(reverse=True)
print(list)
运行结果
['orange', 'melon', 'mango', 'kiwi', 'cherry', 'banana', 'apple']
- 通过参数 key=len 按元素长度排序,相同长度的再默认排序
list = ["Melon", "banana", "apple","Cherry", "orange", "kiwi", "mango"]
list.sort(key=len) # 先计算元素长度,再按长度正序排序,相同长度的再默认排序
print(list)
运行结果:
['kiwi', 'Melon', 'apple', 'mango', 'banana', 'Cherry', 'orange']
- 使用 sorted() 方法对列表进行排序
语法格式:新列表 = sorted(列表名, reverse=False),将列表排序后赋值给其他列表,不改变原列表
list1 = ["melon", "banana", "apple","cherry", "orange", "kiwi", "mango"]
list2 = sorted(list1)
print(list1)
print(list2)
运行结果:
['melon', 'banana', 'apple', 'cherry', 'orange', 'kiwi', 'mango']
['apple', 'banana', 'cherry', 'kiwi', 'mango', 'melon', 'orange']
- 使用 reverse() 方法翻转列表
语法格式:列表名.reverse(),将列表倒序排序
list = ["melon", "banana", "apple","cherry", "orange", "kiwi", "mango"]
list.reverse()
print(list)
运行结果:
['mango', 'kiwi', 'orange', 'cherry', 'apple', 'banana', 'melon']
列表的其他使用
- 使用 len() 返回列表有多少元素
- 使用 count() 返回元素出现的次数
- 使用 index() 返回具有指定值的第一个元素的索引
- 检查列表中使用存在指定元素
- 返回列表元素最大值
- 返回列表元素最小值
总结
Python列表是数据处理中不可或缺的工具,它们可存储不同数据类型的元素,灵活应用于各种场景!
让我们一起探索Python列表的丰富功能,轻松管理数据集合吧!