列表元素的增加操作
方法 | 操作描述 | |
---|---|---|
apppend() | 在列表末尾添加一个元素 | |
增加操作 | extend() | 在列表末尾至少添加一个元素 |
insert() | 在列表的任意位置添加一个元素 | |
切片 | 在列表的任意位置添加至少一个元素 |
- append()
lst = [10, 20, 30]
print(lst, id(lst))
lst.append(100)
print(lst, id(lst))
ls2 = ['hello', 'world']
lst.append(ls2) # 将ls2作为一个元素添加到列表的末尾
print(lst)
lst = [10, 20, 30]
print(lst, id(lst))
lst.append(100)
print(lst, id(lst))
ls2 = ['hello', 'world']
lst.append(ls2) # 将ls2作为一个元素添加到列表的末尾
print(lst)
- extend()
lst.extend(ls2) # 向列表末尾一次性添加多个元素
print(lst)
[10, 20, 30, 100, ['hello', 'world'], 'hello', 'world']
- insert()
lst.insert(1, 90) # 在列表lst索引是1的位置添加90
print(lst)
[10, 90, 20, 30, 100, ['hello', 'world'], 'hello', 'world']
- 切片
ls3 = [True, False, 'hello']
lst[1::] = ls3 # 此时切片表示将索引为0的元素保留,将其他元素切掉
print(lst)
[10, True, False, 'hello']
列表元素的删除操作
方法 | 操作描述 | |
---|---|---|
1.一次删除一个元素 | ||
remove移出() | 2.重复元素只删除第一个 | |
3.元素不存在抛出ValueError | ||
删除操作 | 1.删除一个指定索引位置上的元素 | |
pop() | 2.指定索引不存在抛出IndexError | |
3.不指定索引,删除列表中最后一个元素 | ||
切片 | 一次至少删除一个元素,将产生一个新的列表对象 | |
clear() | 清空列表 | |
del | 删除列表 |
- remove()
lst = [20, 30, 40, 50, 30]
lst.remove(30)
print(lst)
[20, 40, 50, 30]
- pop()
lst.pop(3)
print(lst)
lst.pop()
print(lst)
[20, 40, 50]
[20, 40]
- 切片
lst2 = [10, 20, True, 'python']
lst3 = lst2[1:]
print('原列表', lst2, '切片后的新列表', lst3)
# 不产生新的列表对象,而是用切片取删除原列表中的内容
lst4 = [1, 3, 5, 9]
print(lst4[1:3])
lst4[1:3] = [] # 使用[]将指定索引处的元素进行覆盖,以达到删除元素的目的
print(lst4)
原列表 [10, 20, True, 'python'] 切片后的新列表 [20, True, 'python']
[3, 5]
[1, 9]
- clear()
lst4 = [1, 3, 5, 9]
lst4.clear()
print(lst4)
[]
- del
lst4 = [1, 3, 5, 9]
del lst4
print(lst4)
NameError: name 'lst4' is not defined. Did you mean: 'lst'?
列表元素的修改操作
操作描述 | |
---|---|
修改操作 | 1.为指定索引的元素赋予一个新值 |
2.为指定的切片赋予一个新值 |
- 指定索引的元素赋予新值
lst = [10, 20, 30, 40]
lst[2] = 100
print(lst)
[10, 20, 100, 40]
- 指定切片赋予新值
lst = [10, 20, 30, 40]
lst[1:3] = [200, 300, 400, 500]
print(lst)
[10, 200, 300, 400, 500, 40]
列表元素的排序操作
-
列表元素的排序操作的两种方式
- 调用sort()方法
调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse(逆转、颠倒)=True,进行降序排序。
lst = [20, 40, 10, 98, 54] print('排序前的列表', lst, id(lst)) lst.sort() print('排序后的列表', lst, id(lst)) # 通过指定关键字参数,将列表中的元素进行降序排序 lst.sort(reverse=True) # 降序排序 print(lst) lst.sort(reverse=False) # 升序排序 print(lst) 排序前的列表 [20, 40, 10, 98, 54] 2125865023296 排序后的列表 [10, 20, 40, 54, 98] 2125865023296 [98, 54, 40, 20, 10] [10, 20, 40, 54, 98]
- 调用内置函数sorted()
调用内置函数sorted(),可以指定reverse=True,进行降序排序;原列表不发生改变,而是排序之后将产生一个新的列表。
lst = [10, 50, 23, 20, 5] new_lst = sorted(lst) print(lst, new_lst) # 指定关键字参数,实现列表元素的降序排序 a = sorted(lst, reverse=True) print(a) [10, 50, 23, 20, 5] [5, 10, 20, 23, 50] [50, 23, 20, 10, 5]
**注意:**sort()方法是对原列表进行排序的操作;而使用内置函数sorted()方法是产生一个新的列表,原列表不发生改变来进行排序操作。
列表生成式
-
列表生成的公式即列表生成式
-
语法结构:[ii for i in range(m, n)]
-
i*i表示列表元素的表达式
-
i表示自定义变量
-
range(m, n)表示可迭代变量
-
**注意事项:**表示列表元素的表达式中通常包含自定义变量。
lst = [i for i in range(1, 10)]
print(lst)
lst = [i*i for i in range(1, 10)]
print(lst)
产生列表[2, 4, 6, 8, 10]
lst2 = [i+1 for i in range(1, 11, 2)]
print(lst2)
lst2 = [i*2 for i in range(1, 6)]
print(lst2)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[2, 4, 6, 8, 10]
[2, 4, 6, 8, 10]