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)

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐