1 什么是列表列表是一组有序的元素组成,元素本身没有限制,元素与元素之间也没有任何关系,在Python中用方括号[]表示列表
【Python 列表】列表的特性:可变、有序
2 列表相关操作2.1 访问单个列表元素列表是有序的,因此可以通过列表的索引访问列表的元素,特别注意索引是从0开始的,示例如下:
names = ['张无忌', '赵敏', '周芷若']print(names[0])结果如下:

文章插图
2.2 访问多个列表元素——列表切片列表切片返回包含源列表部分元素的新列表,通过索引和步长实现
切片语法是:list[start_index:end_index:step]
正值索引值是0到len(list[])-1,负值索引值是-len(list[])到-1
step缺省时第二个冒号也可以省略,但start_index和end_index缺省时,两个冒号均不能省略
返回的列表元素包含start_index,不含end_index
参数默认值:start_index默认值是0,end_index默认值是len(list[]),step默认值是1
示例如下:
names = ['张无忌', '赵敏', '周芷若']print(names[0:2])# 正索引print(names[-3:-1])# 负索引print(names[:2])# start_index缺省print(names[0:])# end_index缺省结果如下:
文章插图
特殊用法:负数step实现列表翻转
names = ['张无忌', '赵敏', '周芷若']print(names[::-1])# start_index和end_index缺省print(names[2:0:-1])# 无法返回元素names[0]print(names[2::-1])# 正值索引通过缺省end_index返回元素names[0]print(names[-1::-1])print(names[-1:-3:-1])结果如下:
文章插图
因为step为负值,,即返回元素的方向是反向索引(从右往左),所以对应的start_index需要在end_index右侧
反向索引切片返回的列表不含索引为end_index的元素,使用正值索引需要返回缺省end_index参数
2.3 列表元素的变更2.3.1 修改列表元素列表元素的修改通过索引实现,可以一次修改过个元素,修改多个元素的语法类似切片
# 修改单个元素,元素不加方括号[]list1 = ['张无忌', '赵敏', '周芷若']list1[2] = '小昭'print(list1)# 修改不相邻的多个元素时,修改前后的序列个数必须一致list2 = ['a', 'b', 'c']# 也可以使用list2[0:3:2] = ['d', 'e'],Python会自动对可迭代的对象做一次解析,然后赋值到对应位置list2[0:3:2] = 'de'print(list2)# 修改相邻的多个元素时,修改前后的序列个数可以不同,使用该方法可以变更元素数量list3 = ['a', 'b', 'c']# 也可以是list3[3:] = 'de'list3[3:] = ['d', 'e']print(list3)结果如下:
文章插图
2.3.2 向列表插入元素向列表任意位置插入元素,使用list[].insert()方法
语法为:
list.insert(index, object)
将object插入到索引index位置,对应位置及之后原来的元素顺位后移,示例如下:
names = ['张无忌', '赵敏']names.insert(1, '小昭')print(names)结果如下:
文章插图
向列表末尾添加元素,使用list[].append()方法
语法为:
list.append(object)
object元素被添加至原列表末尾,示例如下:
names = ['张无忌', '赵敏']names.append('小昭')print(names)结果如下:
文章插图
2.3.3 删除列表元素使用del语句删除元素
语法为:
del list[start_index, end_index, step]
删除的元素就是切片返回的元素,示例如下:
names = ['张无忌', '赵敏', '周芷若']del names[0:3:2]print(names)结果如下:
文章插图
使用list.pop()方法删除元素
pop()方法删除元素后会弹回元素,在不重复抽奖等程序中常使用
语法为:
list.pop(index)
将索引为index的元素list[index]从原列表删除并返回,index缺省时,默认删除末尾元素,示例如下:
names = ['张无忌', '赵敏', '周芷若']name = names.pop()print(names)print(name)结果如下:
文章插图
使用remove()方法删除元素
remove()方法可以根据值删除元素
语法为:
list.remove(value)
该方法只会删除列表中首个值为value的元素,如果值不在列表中,则会报错,示例如下:
names = ['张无忌', '赵敏', '周芷若', '张无忌']names.remove('张无忌')print(names)结果如下,第二个张无忌并没有被删除:
文章插图
2.3.4 列表相加和列表的乘法列表和列表可以直接相加,语法为:list1+list2
列表的乘法是对列表元素的复制,常用来生成元素重复的列表,语法为:list*number
示例如下:
names1 = ['张无忌', '赵敏', '白眉鹰王']names2 = ['周芷若', '小昭']names3 = names1 + names2names4 = names1 * 3print(names3)print(names4)结果如下:
文章插图
2.4 变更列表元素顺序2.4.1 list.sort()方法——对列表永久排序语法为:
list.sort(key=None, reverse=False)
- key:一个函数,只有一个参数,函数的输入就是列表元素,根据输出结果对原列表进行排序
- reverse:排序规则,reverse = True 降序, reverse = False 升序(默认)
names = ['张无忌', '赵敏', '白眉鹰王']names.sort(key=len, reverse=True)# 以元素的长度为key进行排序print(names)结果如下:
文章插图
2.4.2 sorted()函数——对列表临时排序语法为:
sorted(key=None, reverse=False)
- key:一个函数,只有一个参数,函数的输入就是列表元素,根据输出结果对原列表进行排序
- reverse:排序规则,reverse = True 降序, reverse = False 升序(默认)
names = ['张无忌', '赵敏', '白眉鹰王']now_names = sorted(names, key=len, reverse=True)# 以元素的长度为key降序排序print(now_names)print(names)结果如下:
文章插图
2.4.3 reserve()方法——翻转列表reserve()方法是对原列表操作,属于永久操作,需要恢复到以前的顺序,再次使用reserve()方法即可,示例如下:
names = ['张无忌', '赵敏', '白眉鹰王']names.reverse()print(names)结果如下:
文章插图
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
