Python 列表操作
列表list
一个队里,一个排列整齐的队伍
列表内的个体称作元素,由若干元素组成列表
元素可以是任意对象(数字,字符串,对象,列表等)
列表内元素有顺序,可以使用索引
线性的数据结构
使用 [] 表示
列表是可变的
列表 list 定义,初始化
list() # 定义一个空列表
list(iterable) # 从一个可迭代的对象初始化列表
列表不能一开始就定义大小
列表的查
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a[1:4])
结果:
['tom', 'jack', 'james']
注意:列表的切片的下标以 0 为开始。即: 下标0 --> klvchen,下标1 --> tom,..... 下标5 --> lucy。
列表的切换顾头不顾尾,例如:a [1:4],则不会取到列表下标为4的元素
从左到右,取到最后:
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a[1:])
结果:
['tom', 'jack', 'james', 'lily', 'lucy']
从左到右,取到倒数第二个值:
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a[1:-1])
结果:
['tom', 'jack', 'james', 'lily']
从左到右,隔一个去取:
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a[1::2])
结果:
['tom', 'james', 'lucy']
从右到左,一个一个去取:
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a[3::-1])
结果:
['james', 'jack', 'tom', 'klvchen']
从右到左去取
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a[-2:-4:-1])
结果:
['lily', 'james']
迭代
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]for k,v in enumerate(a):
print(k, v)
结果:
0 klvchen
1 tom
2 jack
3 james
4 lily
5 lucy
列表的增
append 方法默认插到最后一个位置
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]a.append("mary")
print(a)
结果:
['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy', 'mary']
insert 方法将数据插入到任意一个位置
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]a.insert(1,"mary")
print(a)
结果:
['klvchen', 'mary', 'tom', 'jack', 'james', 'lily', 'lucy']
extend 方法可在列表的末尾一次性追加另一个序列中的多个值
a = ["klvchen", "tom", "jack"]b = ["james", "lily", "lucy"]
a.extend(b)
print(a)
结果:
['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']
*,重复操作,将本列表表示元素重复 n 次,返回新的列表
list1 = [1, 2, 3]list2 = list1 * 2
print(list2)
结果:
[1, 2, 3, 1, 2, 3]
+,连接操作,将两个列表连接起来,产生新的列表,原列表不变
list3 = [4, 5, 6]list4 = list1 + list3
print(list4)
结果:
[1, 2, 3, 4, 5, 6]
列表的改
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]a[1]="tom2"
print(a)
结果:
['klvchen', 'tom2', 'jack', 'james', 'lily', 'lucy']
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]a[1:3]=["tom2", "jack2"]
print(a)
结果:
['klvchen', 'tom2', 'jack2', 'james', 'lily', 'lucy']
列表的删
remove 方法
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]a.remove("tom")
print(a)
结果:
['klvchen', 'jack', 'james', 'lily', 'lucy']
pop 方法
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]b = a.pop(1)
print(a)
print(b)
结果:
['klvchen', 'jack', 'james', 'lily', 'lucy']
tom
注意 pop 方法会返回删除的元素
del 方法
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]del a[1]
print(a)
结果:
['klvchen', 'jack', 'james', 'lily', 'lucy']
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]del a
print(a)
结果:
NameError: name 'a' is not defined
注意:del a 把列表a从内存删除了,所以打印 a 列表程序会报错
clear()
清除列表所有元素,剩下一个空列表
列表元素的统计
list = ['a', 'a', 'b', 'c']res = list.count('a')
print(res)
结果:
2
列表复制
copy()
shadow copy 影子拷贝,也叫浅拷贝,遇到引用类型,只是复制了一个引用而已,返回一个新的列表
lst0 = list(range(4))lst1 = lst0.copy()
print(lst0 == lst1) # 判断 lst0 的元素和 lst1 的元素是否一样
print(lst1 is lst0) # 判断 lst0, lst1 的内存地址是否一样
结果:
True
False
深拷贝
copy 模块提供了 deepcopy
import copy
lst0 = [1, [2, 3, 4], 5]
lst5 = copy.deepcopy(lst0)
lst5[1][1] = 20
print(lst5 == lst0)
False
列表的排序
sort 方法
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a)
a.sort()
print(a)
结果:
['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']
['jack', 'james', 'klvchen', 'lily', 'lucy', 'tom']
reverse 方法
a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]print(a)
a.reverse()
print(a)
结果:
['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']
['lucy', 'lily', 'james', 'jack', 'tom', 'klvchen']
以上是 Python 列表操作 的全部内容, 来源链接: utcz.com/z/389229.html