列表
- 列表可以容纳不同数据类型
lb = [1, 2, 3, 4, 5, 'dddddd']
- 下标索引获取元素的值
lb[0]
len()
获取列表长度- 索引
正索引 | 0 | 1 | 2 | 3 | 4 | 4 |
---|---|---|---|---|---|---|
复索引 | -6 | -5 | -4 | -3 | -2 | -1 |
值 | 1 | 2 | 3 | 4 | 5 | ‘dddddd’ |
#最后一个元素
len1 = len(lb)
lb[len1 - 1]
'dddddd'
lb[-1]
'dddddd'
- 列表切片
lb[0:3]
[1, 2, 3]
lb[3:6]
[4, 5, 'dddddd']
lb[:2]
[1, 2]
lb[2:]
[3, 4, 5, 'dddddd']
- 跨度
lb[::2]
[1, 3, 5]
lb[::-1] #倒序
['dddddd', 5, 4, 3, 2, 1]
- 增
# p21 增 append():只能增加一个 extend():可以添加可迭代对象
a = [1, 2]
a.append(3)
[1, 2, 3]
a.extend([4, 5, 6])
[1, 2, 3, 4, 5, 6]
#insert(index, obj) 插入 index索引,obj值
a.insert(2, 100)
[1, 2, 100, 3, 4, 5, 6]
- 删
#1.如果列表中存在多个匹配的元素,那么它只会删除第一个。
#2.如果指定的元素不存在,那么程序就会报错。
a.remove(100)
[1, 2, 3, 4, 5, 6]
# pop(index) index索引,删除index索引的值
a.pop(2)
3
[1, 2, 4, 5, 6]
# 清空 clear()
a.clear()
[]
- 改
# 列表是可变的,而字符串是不可变的。
b = [0, 1, 2, 3, 4]
b[4] = 100
[0, 1, 2, 3, 100]
b[4:] = [5, 6] #先删除再添加
[0, 1, 2, 3, 5, 6]
c = [4, 5, 9, 1, 0, 4]
c.sort() #从小到大
[0, 1, 4, 4, 5, 9]
c.reverse() # 倒序
[9, 5, 4, 4, 1, 0]
c = [4, 5, 9, 1, 0, 4]
c.sort(reverse = True)
[9, 5, 4, 4, 1, 0]
- 查
# count() 查找元素有多少个 count()
c.count(4)
2
# index() 查找元素的索引值 index(index, start, end)
c.index(4)
2
- 列表的加法和乘法
# 加法就是拼接 重复列表中的元素若干次
p = [2, 4]
q = [5, 6]
p + q
[2, 4, 5, 6]
p * 3
[2, 4, 2, 4, 2, 4]
- 嵌套列表
matrix = [[1, 2, 3], [4, 5, 6]]
# 构建
A = [0] * 3
for i in range(3):
A[i] = [0] * 3
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
- is
# is判断地址是否指向用一个对象的运算符
A[0] is A[1]
False # 如上图
B = [[0] * 3] * 3 #注意 拷贝的就是对同一个列表的引用
B[0] is B[1]
True # 如上图
# 同一个字符串,地址相同
x = "FishC"
y = "FishC"
x is y
True
- 浅拷贝 和 深拷贝
# 一维列表如果要让两个变量互不干扰,就需要用到copy [:] 浅拷贝
# 浅拷贝
x = [1, 2, 3]
xx = x.copy()
xxx = x[:] #copy
xx, xxx
([1, 100, 3], [1, 100, 3])
# 深拷贝 copy模块
import copy
x = [[1, 2], [3, 4]]
y = copy.copy(x) # 浅拷贝
x[1] is y[1]
True
x = [[1, 2], [3, 4]]
y = copy.deepcopy(x) # 深拷贝
x[1] is y[1]
False
- 列表推导式
# 公式 [表达式 for target in iterable]
oho = [1, 2, 3, 4, 5]
oho = [i * 2 for i in oho]
[2, 4, 6, 8, 10]
# 公式 [表达式 for target in iterable if condition]
even = [i for i in range(10) if i % 2 == 0]
[0, 2, 4, 6, 8]
# 公式 [表达式 for target1 in iterable1
# for target2 in iterable2
# ······
# ]
matrix = [[1, 2, 3], [4, 5, 6]]
f = [j for i in matrix for j in i] #二维变一维列表
[1, 2, 3, 4, 5, 6]
# 公式 [表达式 for target1 in iterable1 if condition1
# for target2 in iterable2 if condition2
# ······
# ]
# 依葫芦画瓢
- list()
# 可以把字符串和元组变成链表
版权声明:本文为qq_45019494原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。