python第3天
索引
- 从零开始,即相应位置的标签
- 区别于位置,位置减一等于索引
- 左开右闭,即左边索引对应位置的值可取,右侧索引所对应位置的值取不到
range
range(10)
#|> range(0, 10)
a = range(10)
a
#|> range(0, 10)
[i for i in range(10)]
#|> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
序列类型
- 可迭代,即可以存多个值
- 字符串
- 列表
- 元组
list—列表
查找
# 查找
li = [i for i in range(0,101,2)]
li[1]
#|> 2
li[2:5]
#|> [4, 6, 8]
li.index(4) # 返回指定元素的索引
#|> 2
li.index(34) # 返回指定元素的索引
#|> 17
li1 = [1,2,3,2,4]
li1
#|> [1, 2, 3, 2, 4]
li1.index(2) # 返回指定元素的索引,只返回第一个匹配的元素索引
#|> 1
li1.index(2,2) # 返回从指定索引位置开始往后查找指定元素的索引,只返回第一个匹配的元素索引
#|> 1
li1[0:5:2] # 可以增加步长,间隔指定宽度取值
#|> [1, 3, 4]
添加
li1 = [1,2,3,2,4]
li1
#|> [1, 2, 3, 2, 4]
li1.append("A") # 尾部添加单个元素
li1
#|> [1, 2, 3, 2, 4, 'A']
li1.insert(2,["a0",10]) # 指定索引位置添加单个元素
li1
#|> [1, 2, ['a0', 10], 3, 2, 4, 'A']
li1.extend(["adhja",13279]) # 尾部添加多个元素
li1
#|> [1, 2, ['a0', 10], 3, 2, 4, 'A', 'adhja', 13279]
li2 = ["q","W","e","R"]
li1+li2 # 返回一个新列表,原始两个列表没有改变
#|> [1, 2, ['a0', 10], 3, 2, 4, 'A', 'adhja', 13279, 'q', 'W', 'e', 'R']
li1
#|> [1, 2, ['a0', 10], 3, 2, 4, 'A', 'adhja', 13279]
li2
#|> ['q', 'W', 'e', 'R']
li1.append([1,3]) # 尾部添加单个元素
li1
#|> [1, 2, ['a0', 10], 3, 2, 4, 'A', 'adhja', 13279, [1, 3]]
修改
li1[2] = 1234
li1
#|> [1, 2, 1234, 3, 2, 4, 'A', 'adhja', 13279, [1, 3]]
删除
li1.pop() # 默认删除最后一个并返回这个元素
li1
#|> [1, 2, 3, 2, 4]
li1.pop()
#|> 4
li1
#|> [1, 2, 3, 2]
li1.pop(1) # 删除指定索引位置的元素,并返回其对应的元素
#|> 2
li1.remove(3) # 删除指定元素
li1
#|> [1, 2, 2]
del li1[1:3] # 批量删除
li1
#|> [1]
li1.clear() # 清空列表,原始列表被清空内存地址没有改变
#|> []
li1 = [] # 重新赋值,新列表,内存地址改变
计数
li1 = [1,3,5,1,3,5,7,10,2,4,6,2]
li1
#|> [1, 3, 5, 1, 3, 5, 7, 10, 2, 4, 6, 2]
li1.count(2)
#|> 2
li1.count(3)
#|> 2
li1.count(4)
#|> 1
排序
sorted(li1) # 返回一个新列表,即临时排序
#|> [1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 10]
li1
#|> [1, 3, 5, 1, 3, 5, 7, 10, 2, 4, 6, 2]
li1.sort() # 修改原始列表,即永久排序
li1
#|> [1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 10]
反向输出
li1.reverse() # 修改原始列表,反向输出
li1
#|> [10, 7, 6, 5, 5, 4, 3, 3, 2, 2, 1, 1]
id(li1)
#|> 1936012267456
sorted(li1,reverse = True) # 生成新列表,反向数据
#|> [10, 7, 6, 5, 5, 4, 3, 3, 2, 2, 1, 1]
id(sorted(li1,reverse = True))
#|> 1935980579904
元组
# 元组不可修改
a = ("dasd",213,"hhh")
a
#|> ('dasd', 213, 'hhh')
a[0]
#|> 'dasd'
### 元组拆包
b,c,d = a # 变量个数不能超出元素个数
a
#|> ('dasd', 213, 'hhh')
b
#|> 'dasd'
c
#|> 213
d
#|> 'hhh'
b,*c = a
b
#|> 'dasd'
c
#|> [213, 'hhh']
a = ("dasd",213,"hhh",589)
b,*c,d = a
b
#|> 'dasd'
c
#|> [213, 'hhh']
d
#|> 589