第五章列表
1、初识人名单
1\。列表的理解
一个变量可以存储一个元素,而一个列表是一个“大容器”,可以存储n个以上的元素。该程序可以轻松地将这些数据作为一个整体进行操作。列表相当于其他语言的数组,列表相当于一个书包,里面装着很多“书”
列表如何存储数据:

该列表也有自己的 id 值。列表是一个连续的存储空间,用来存储数据的id值,获取数据的value值
2\。列表创建
#第一次创作
lst_1 u003d ['你好','世界',98]
#第二种创建方式使用list函数构建
列表_2 u003d 列表(['你好','世界',98])
3\。列表的特征
1\。列表元素按顺序排列,占用连续的存储空间
2.索引映射唯一的数据是每个位置的索引都有一个特定的序号,比如list[0]。映射到位置 0 的元素只能是 'hello'。不管是正索引还是逆索引(list[-3]),还是得到'hello'
3.列表可以存储重复数据
4.任何数据类型都可以混合
5.列表会根据需要动态分配和回收内存,不用担心内存不足或过多
4\。列表生成
即生成列表的公式。语法格式为:
[list element expression for custom variable in range (1,10)]
lst u003d [i*2 for i in range(1,11)]
打印(lst)
二.列表查询
查询操作 index()
只能依次检索一个元素
lst u003d ['你好','世界',98,'你好']
#如果列表中有相同的元素,则只返回列表中相同元素的第一个元素的返回值。一旦被索引,它将打破
打印(lst.index('你好'))
#如果索引的目标不在列表中,会报错
'''还可以在指定范围内搜索并设置起始索引位置和结束索引位置'''
print(lst.index(98,1,3)) #按顺序检索98 [1,3]
3、获取列表元素
1\。获取列表中的单个元素
注意正向索引来自[0, n-1],反向索引来自[- N,-1)
print(lst[3]) #将索引从0转发到n-1
print(lst[-4]) #从-N~-1反向索引
你好
你好
2\。获取列表中的多个元素----切片操作
切片语法格式:
列表名[start:stop:step]的步长默认为1,可以省略。 stop:] 也表示步长为 1
切片结果:复制原始列表片段得到一个新列表
切片范围:[start,stop)
当 step 为正时,从前到后开始切片:
[:stop:step] -------------- > 默认情况下,切片的第一个元素是列表的第一个元素
[start::step] -------------- > 默认情况下,切片的最后一个元素是列表的最后一个元素
当 step 为负时,从后向前切片:
[:stop:step] -------------- > 默认情况下,切片的第一个元素是列表的最后一个元素
[start::step] -------------- > 默认情况下,切片的最后一个元素是列表的第一个元素
lst_2 u003d [10,20,30,40,50,60,70,80]
print('原始列表',id(lst_2))
lst_3 u003d lst_2[1 : 6 : 2]
print('Sliced list',id(lst_3)) #list id值的变化说明生成了一个新的list对象
原单1585279841728
切片列表 1585276221440
当步长为负时
print(lst_2[::-1]) #step为负时,LST倒序输出_ 2[7::-1]
[80, 70, 60, 50, 40, 30, 20, 10]
start为负数时,表示取最后几个值,因为为负数时,表示从最后一个数取逆值(索引为-1),step为正数,所以得到正序
lst u003d [10,20,30,40,50,60,70]
lst2 u003d lst[-4:]
打印(lst2)
[40, 50, 60, 70] 输出最后三个元素
stop 为负数时取反向值,但 start 默认为 0,即从索引 0 到反向索引 - 2 的值
lst u003d [10,20,30,40,50,60,70]
lst2 u003d lst[:-2]
打印(lst2)
[10, 20, 30, 40, 50] 从 0 到 - 2
连续切片操作
lst u003d [10,20,30,40,50,60]
lst_1 u003d lst[:4][:2]
打印(lst_1)
等价于 lst[:4]u003d[10,20,30,40]
lst[:4][:2]u003d[10,20]
切片操作的三个参数可以表示
lst u003d [10,20,30,40,50,60]
lst_1 u003d lst[1*1:3+3][0:5%2]
打印(lst_1)
理论上可以无限次连续切片,只要最后返回的对象还是非空的可剪切对象
其他对象的切片操作
(1) 元组切片
a u003d (1,2,3,4,5,6)[:3] #元组切片操作
打印(一)
(1, 2, 3) 取前三个
(2) 字符串的切片操作
b u003d 'ASBJFS'[:3]
打印(b)
ASB # 取前三个字符
(3) 切片应用
使用range函数生成1-20的整数,取3的倍数输出后四位
对于范围内的 i (1,20)[2::3][-4:]:
打印(我,结束u003d'')
9 12 15 18
3\。判断指定元素是否存在于列表中
语法格式:
元素{在/不在列表名称中
lst_4 u003d [10,20,30,40]
print(10 in lst_4) #True
打印(20 不在 lst_4 中)#False
4\。列表元素的遍历
lst_5 u003d [10,20,30]
for item in lst_5: #From lst_ In 5,赋值给item并打印出来
打印(项目)
10
20
30
4、添加元素到列表
如何将元素添加到列表中:
1\。 append():将一个元素添加到列表的末尾
lst u003d [10,20,30]
list.append(100)
print(lst) #[10, 20, 30, 100],增加后id值不变
2\。 extend():将至少一个元素添加到列表的末尾
lst u003d [10,20,30]
对于 sta u003d [60,70,80]
lst.append(lst2) #添加一个元素,最后插入lst2作为一个整体
打印(lst)
lst.扩展(lst2)
print(lst) #将lst2的所有元素依次插入LST
[10, 20, 30, [60, 70, 80]]
[10, 20, 30, [60, 70, 80], 60, 70, 80]
可以看到 append() 直接将 lst2 的整个列表作为一个元素插入到 LST 中,而 extend() 将 lst2 中的所有元素依次插入到 LST 中。
3\。 insert():在列表的任意位置添加一个元素
lst.insert(2,100) #在索引 2 处插入 100
打印(lst)
4\。切片:在列表的任意位置添加至少一个元素
lst3 u003d ['ds',22,80]
lst[1:] u003d lst3
#从索引为1的位置开始,stop没有设置为默认到最后一个元素,所以从索引1开始剪切,插入lst3
打印(lst)
[10, 'ds', 22, 80]
如果在一个索引位置插入多个元素,只需要设置lst u003d [2:2],起始索引和结束索引在同一位置
lst3 u003d ['ds',22,80]
lst[1:1] u003d lst3 #设置起始索引为结束索引,在索引位置插入一个新元素
打印(lst)
[10, 'ds', 22, 80, 20, 30]
5、删除列表
1\。 remove():一次删除一个元素。对于重复元素,只会删除第一个元素。如果元素不存在,将抛出异常
lst u003d [10,20,30,40,50,30]
lst.remove(30) 前30个被删除
打印(lst)
[10, 20, 40, 50, 30]
2\。 pop():删除指定索引位置的元素
lst.pop(1) 索引被删除为一个
打印(lst)
lst.pop() 默认删除最后一个元素
打印(lst)
[10, 40, 50, 30]
[10, 40, 50]
3\。切片:一次至少删除一个元素
对于 sta u003d [10,20,30,40,50]
新_lst u003d lst2[1:3]
print(new_lst) 删除至少一个元素将产生一个新的列表对象
不生成新的列表对象,而是删除原列表的内容
莱斯塔[1:p] u003d []
打印(lst)
[10, 40, 50]
4\。 clear():清除列表
lst2.clear() 获取一个空列表
打印(lst2)
5\。 del:删除列表
德尔 lst2
六。列表修改
列表元素的修改
1\。为指定索引的元素分配一个新值
#一次修改一个值
lst u003d [10,20,30,40,50]
lst[2] u003d 200
打印(lst)
2\。为指定的切片分配一个新值
#切片替换,索引从1-2替换为[100200300400]
lst[1:3] u003d [100,200,300,400]
打印(lst)
7、总结
1\。列表查询方式
索引(数据,开始,停止)
2\。向列表中添加元素的方法
append(data):将一个元素添加到列表的末尾
扩展(数据):将至少一个元素添加到列表的末尾
插入(索引位置,数据):在列表的任意位置添加一个元素
切片:在列表的任意位置添加至少一个元素相当于替换
3\。删除列表元素的方法
remove(data):一次删除一个元素。对于重复元素,仅删除第一个元素。不抛出异常
pop(索引位置):删除指定索引位置的元素,不指定默认最后一个
切片:一次至少删除一个元素。如果您不想生成新序列,请将其替换为空列表
clear():清除列表
del:删除列表
8、多功能切片
切片可以实现向列表添加元素的方法
lst3 u003d ['ds',22,80] 取 lst 全部替换为 lst3 中的索引 1
lst[1:] u003d lst3
打印(lst)
如果设置了停止值,可以修改列表,相当于替换
lst[1:3] u003d [100,200,300,400]
打印(lst)
也可以删除列表元素,但是会生成一个新的列表
对于 sta u003d [10,20,30,40,50]
新_lst u003d lst2[1:3]
打印(新_lst)
如果不想生成新列表,仍然在原列表中操作,只需要用空列表替换即可
莱斯塔[1:p] u003d []
打印(lst)
更多推荐

所有评论(0)