3.列表(List)
-
可变,是序列。
-
可变:可对其中的元素进行修改,不会copy后再改,而是在原本的基础上修改。
-
列表用方括号定义,没有元素类型限制
-
列表变量也会占内存,其中元素若没被定义,则会是随机存放在内存中某个地址下,列表变量会引用元素的地址,并不是连续的。
-
列表修改值
若仅改变列表中的一个元素,则直接使用索引,lst[index] = object。
若改变列表中的多个元素,则需使用切片方式,且赋值需为可迭代对象,lst[start :end: step] = interable 。
若step=1时,步长可以不应,但若step不等于1时,替换的元素必须同被替换的元素个数一致,不然会报错。
注意:当使用元组进行替换时,当元组内只有一个数字,则需要在其之后添加逗号,由于()也有优先级的作用,故程序会将其作为括号解释,则此时此变量仅为数字,不再是可迭代值,就会报错。
lst3 = ['34', 'gkj', False, [134, 'dff', True], 343]
lst3[:3] = 'dfd',445,'444'
print(lst3) # ['dfd', 445, '444', [134, 'dff', True], 343]
lst3[1::2] = ['34', 'gkj']
print(lst3) # ['dfd', '34', '444', 'gkj', 343]
lst3[1:3] = 'djgl'
print(lst3) # ['dfd', 'd', 'j', 'g', 'l', 'gkj', 343]
lst3[2] = [] #对象
print(lst3) # ['dfd', 'd', [], 'g', 'l', 'gkj', 343]
lst3[1:3] = [] #可迭代对象
print(lst3)# ['dfd', 'g', 'l', 'gkj', 343]
lst3[0:0] = ['hrrs'] #在第一个元素前面追加
print(lst3) # ['hrrs', 'dfd', 'g', 'l', 'gkj', 343]
lst3[len(lst3):] = '🐱'#末尾追加
print(lst3) #['hrrs', 'dfd', 'g', 'l', 'gkj', 343, '🐱']
-
封包:当多个对象同时赋值给一个变量时,此时会自动将这多个对象打包成一个元组。
-
列表内存自动管理
list函数
list([iterable])
-
调用list()类,功能是:将一个iterable对象转行为列表并返回,如果没有实参,则返回空列表
print(list()) #[]
print(list("🐱3🐕df🐒2")) #['🐱', '3', '🐕', 'd', 'f', '🐒', '2']
print(list((4, 6, 7))) #[4, 6, 7]
print(list({'country': 1, 'city': 2})) #['country', 'city']
print(list({'g', 'd', 'hhh', 394, 246})) #['hhh', 'g', 246, 394, 'd']
列表的方法(定义在列表这个类下的函数)
list.append(object)
- 在列表末尾追加一个元素,无返回值,相当于a[len(a):] = [x]
list.extend(iterable)
- 使用iterable中的所有元素来扩展列表,无返回值,相当于a[len(a):] = iterable
list.insert(i,x)
- i:要插入的元素的索引
- x:要插入的元素
- 功能:在指定位置插入一个元素,无返回值
lis4 = ['hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ']
lis4.append(6)
lis4.append([' ',' '])
print(lis4) #['hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ', 6, [' ', ' ']]
lis4.extend('dfs')
print(lis4) #['hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ', 6, [' ', ' '], 'd', 'f', 's']
lis4.insert(0,'ffff')
print(lis4)#['ffff', 'hrrs', 'dfd', 'g', 'l', 'gkj', 343, ' ', 6, [' ', ' '], 'd', 'f', 's']
list.sort([key],reverse=False)
- key:指定一个函数,在排序之前,列表每个元素先应用这个函数,再根据返回值对原数据进行排序
- reverse:默认为False,代表升序,指定为True则为降序
- 对原列表进行排序,无返回值
list.reverse()
list.count(x)
- 返回元素x在列表中出现的次数
list.index(x[,start[,end])
- x:要找的值
- start:起始索引,默认为0
- end:结束索引(闭区间),默认为len(list)
- 功能:返回从左边开始第一次找到指定值时的正向索引,找不到报错
list.pop([i])
- i:要删除元素的索引
- 删除列表中指定索引的元素并返回该元素
- 如果没有指定索引,将会删除并返回列表中的最后一个元素
# 已知 lst = [1, 3, 2, 6, 4], 程序实现: 删除lst元素中的最大值和最小值(不考虑多个最值情况)
lst = [1, 3, 2, 6, 4 ]
lst.sort()
print(lst)#[1, 2, 3, 4, 6]
lst.pop()
lst.pop(0)
print(lst)#[2, 3, 4]
list.remove(x)
- 删除列表中从左往右遇到的第一个x元素,无返回值
- 如果没有这样的元素,则报错
list.copy()
- 返回列表的一个浅拷贝,等价于a[:]
del()
- 解除引用关系
-
# 已知 lst = [1, 3, 2, 6, 4], 程序实现: 删除lst元素中的最大值和最小值(不考虑多个最值情况) lst = [1, 3, 2, 6, 4 ] lst.sort() print(lst)#[1, 2, 3, 4, 6] del lst[0], lst[len(lst)-1] print(lst)#[2, 3, 4]
list.clear()
- 移除列表中所有元素,无返回值


被折叠的 条评论
为什么被折叠?



