列表由以系列按特定顺序排列的元素组成,列表不同于元组和字符串的地方:列表是可变的。
列表是有序集合,列表是序列的一种
列表的基本操作
1.修改列表:给元素赋值
colour = [‘red‘,‘white‘,‘blue‘] colour[0]=‘yellow‘ colour[1]=‘yellow‘ print(colour) >>> [‘yellow‘, ‘yellow‘, ‘blue‘]
# 最简单通过下标(索引)修改。
2.给切片赋值
colour = [‘red‘,‘white‘,‘blue‘] colour[2:] = [‘yellow‘,‘black‘] print(colour) >>>[‘red‘, ‘white‘, ‘yellow‘, ‘black‘]
#覆盖掉了第三个元素,并且改变了列表的长度
可以通过切片在不替换原有元素的情况下插入新元素
colour = [‘red‘,‘white‘,‘blue‘] colour[2:2] = [‘yellow‘,‘black‘] print(colour) >>>[‘red‘, ‘white‘, ‘yellow‘, ‘black‘, ‘blue‘]
还可以通过切片删除特定元素
colour = [‘red‘,‘white‘,‘blue‘,‘yellow‘,‘black‘] colour[1:3] = [] print(colour) >>>[‘red‘, ‘yellow‘, ‘black‘]
#没有删除第四个元素 (回顾序列通用操作,切片)
3.删除元素
3.1 del方法(需要指定删除元素的位置)
colour = [‘red‘,‘white‘,‘blue‘,‘yellow‘,‘black‘] del colour[3] print(colour) >>>[‘red‘, ‘white‘, ‘blue‘, ‘black‘]
删除切片元素
colour = [‘red‘,‘white‘,‘blue‘,‘yellow‘,‘black‘] del colour[1:3] print(colour) >>>[‘red‘, ‘yellow‘, ‘black‘]
#与切片赋值空列表效果一致
3.2 pop方法会移除列表中的一个元素(默认是最后一个),并返回该元素的值。
n = [‘to‘,‘be‘,‘do‘,‘in‘,‘be‘,‘not‘,‘bee‘] print(n.pop()) >>> bee
也可指定元素位置
n = [‘to‘,‘be‘,‘do‘,‘in‘,‘be‘,‘not‘,‘bee‘] print(n.pop(3)) >>> in
pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。pop后也可以跟对象位置,删除指定位置的元素。等于(del listname [x])。
3.3 remove方法用于移除列表中某个值的第一个匹配项。
n = [‘to‘,‘be‘,‘do‘,‘in‘,‘be‘,‘not‘,‘bee‘] n.remove(‘be‘) print(n) >>>[‘to‘, ‘do‘, ‘in‘, ‘be‘, ‘not‘, ‘bee‘]
4.增加,插入元素
4.1 append方法用于在列表末尾追加新的对象
colour = [‘white‘,‘red‘,‘black‘,‘blue‘,‘green‘] colour.append(‘yellow‘) print(colour) >>>[‘white‘, ‘red‘, ‘black‘, ‘blue‘, ‘green‘, ‘yellow‘]
#它不是简单地返回一个修改过的新列表,而是直接修改原来的列表。
4.2 extend方法可以在列表的末尾一次性追加另一个序列中的多个值。
a = [1,2,3] b = [4,5,6] a.extend(b) print(a) print(b) >>>[1, 2, 3, 4, 5, 6] >>>[4, 5, 6]
看起来很像连接(相加)操作,两者最主要的区别在于:extend方法修改了被扩展的序列(即a),而原始的连接操作则不然,它会返回一个全新的列表。
a = [1,2,3] b = [4,5,6] x=a+b print(x) print(a) print(b) >>>[1, 2, 3, 4, 5, 6] >>>[1, 2, 3] >>>[4, 5, 6] #或者a = a +b
4.3 insert方法用于将对象插入到列表中(必须指定元素位置)
num = [1,2,3,5,6,7] num.insert(3,‘four‘) print(num) >>>[1, 2, 3, ‘four‘, 5, 6, 7]
5.clear方法用就地清空列表的内容
num = [1,2,3,5,6,7] num.clear() print(num) >>> []
#类似于切片赋值list[:]=[]
6.copy 方法用于复制列表
常规复制只是将另一个名关联到列表
a = [1,2,3] b = a b[1] = 4 print(a) >>> [1, 4, 3]
要让a和b指向不同的列表,就必须将b关联到a的副本。
a = [1,2,3] b = a.copy() b[1] = 4 print(a) print(b) >>>[1, 2, 3] >>>[1, 4, 3]
7.count 方法用于计算指定的元素在列表中出现了多少次
n = [‘to‘,‘be‘,‘do‘,‘in‘,‘be‘,‘not‘,‘bee‘] print(n.count(‘be‘)) >>> 2
8.index方法用于在列表中查找指定值第一次出现的索引。
n = [‘to‘,‘be‘,‘do‘,‘in‘,‘be‘,‘not‘,‘bee‘] print(n.index(‘be‘)) >>> 1
9.reverse方法将列表中的元素反向存放
colour = [‘white‘,‘red‘,‘black‘,‘blue‘,‘green‘] colour.reverse() print(colour) >>>[‘green‘, ‘blue‘, ‘black‘, ‘red‘, ‘white‘]
sort方法用于在原位置对列表进行排序(排序规则?),在‘原位置排序’意味着改变原来的列表,从而让其中的元素能按一定的顺序排列,而不是简单地返回一个已排序的列表副本。
x = [3,6,1,8,2,5,7,4] x.sort() print(x) >>>[1, 2, 3, 4, 5, 6, 7, 8] x = [3,6,1,8,2,5,7,4] print(x.sort()) >>> None #sort修改x且不返回任何值,最终的结果是x是经过排序的,而y包含None x = [3,6,1,8,2,5,7,4] y=x.sort() print(x) print(y) >>>[1, 2, 3, 4, 5, 6, 7, 8] >>>None
当需要一个排好序的列表副本,同时又保留原有列表不变的时候,需先把x的副本赋值给y,然后对y进行排序.
x = [3,6,1,8,2,5,7,4] y=x[:] #得到包含了x所有元素的分片 或 y = x.copy() y.sort() print(x) print(y) >>>[3, 6, 1, 8, 2, 5, 7, 4] >>>[1, 2, 3, 4, 5, 6, 7, 8]
原文地址:https://www.cnblogs.com/romacle/p/10817314.html