列表
内容导读
- 列表的创建
- 列表的基本操作
一 列表的创建
name_list = ['alex', 'seven', 'eric'] #直接通过大括号创建 name_list = list(['alex', 'seven', 'eric']) # 通过list() 内置函数创建 a = list(range(1,200)) #直接创建0到199 的列表
a =
二 列表的基本操作
- 切片
name =slice(2,4) # >> s[2:4] == s[name] #代码中如果出现大量的硬编码下标值会使得可读性和可维护性大大降低,所有以此来解决 print(list1[0-2]) #>>>c 注意:此处0-2是减法运算,结果为-2 print(list1[0:2]) # >>>['a', 'b'] 注意:此处2是去不到的,实质是取 0,1 print(list1[-1:-5]) #>>>[ ] 注意:不能从右往左切 print(list1[-5:-1]) #>>>['a', 'b', 'c'] print(list1[-6:-1]) # >>>['a', 'b', 'c'] print(list1[-5:]) #>>>['a', 'b', 'c', 'b'] print(list1[0:5:2]) # >>>['a', 'c'] 注意:此处2为步长
- 增加
list.append("s") #追加 list.insert(0,"ss") #插入, 在0处插入“ss”
- 删除
li = list.pop() #删除并获取最后一个元素 li = list.pop(local) #删除并获取指定位置的元素 #不知道值,知道位置 list.remove("a") # 移除指定元素,(有多个此元素时,只删除第一个) #不知道位置,但是知道元素的值 del list[1:2] # 批量删除
del list[1:2] # 批量删除
- 修改
list[2] = "aa" list[2:5] = "aaa" #>> > ['a', 'b', 'a', 'a', 'a'] list[2:5] = "aaa", 12, 13 #>> > ['a', 'b', 'aaa', 12, 13]
- 查询
print(list.index("a")) # 查询字符'a'的个数,"a"不存在报错 print(list.count("a")) # 查询字符'a'的个数,"a"不存在返回0
- 深浅拷贝
list1 = [1,2,3,[5,6] 浅拷贝 # 把原列表第一层的内存地址不加区分全部拷贝给新列表 list2 = list1.copy() == list2 = list1[ : ] #复制成一个独立的列表,列表内存地址不同,但列表内的数据的地址是相同的, #修改a中的不可变数据类型1,2,3,对a2没有影响,因为此时a中数据的内存地址都更换了 #但是修改a中的不可变数据类型,如[5,6],那么a2中的[5,6]也会发生改变 深拷贝 # 拷贝时对列表的值的可变性进行区分, #可变类型产生一个新的内存地址(容器),新内存地址里将原可变类型里的值复制一份 #不可变类型拷贝原内存地址 import copy
list3 =copy.deepcopy(list1) # list与list2全无瓜葛 - 排序
reverse() #反转列表 list.sort() #永久性的排序 注意 : 字符和数字不能混排,字母和符号按ASCII排 list.sort(reverse=True ) #反向排序 sorted(list,reverse = True) #临时性的排序(可反向),如需永久,需要赋值
- 枚举
for i in enumerate(list): print(i) for index,i in enumerate(list) #结果没有括号
- 长度,包含,循环,清空
len(list) #长度 for i in list: #循环 a in list: # 包含 list.clear() # 清空