列表

2021-10-09 23:16:37
admin
470
最后编辑:admin 于 2021-12-13 09:48:23

列表简介

列表由一系列按特定顺序排列的元素组成,即是一系列数据对象的集合。列表用方括号 [] 标识,里面的元素用逗号 , 分割。

操作列表

访问列表元素:

使用 列表名[索引] 访问列表中的元素,其中索引号从0开始计数。负数索引是从最后一个元素计数,例如-1表示最后一个元素,-2是倒数第二个,以此类推。

可以像使用其他变量一样使用列表元素。

列表是动态的,可以对其进行增删改操作,使其发生变化。

在列表中添加元素:

在列表末尾追加:append('值')

names = ['Jack', 'Lucy', 'Tom', 'Jone']
names.append('Lily')
#方法 append() 将元素 Lily 添加到列表末尾,而不影响列表中的其他元素。

在列表任一位置插入添加:insert(索引, '值')

names = ['Jack', 'Lucy', 'Tom', 'Jone']
names.insert(2, 'Lily')
#方法 insert() 在索引2处插入新元素,其后的元素索引往后顺移一位。

删除列表元素:

1.通过索引删除

del语句删除元素

del 目标元素

names = ['Jack', 'Lucy', 'Tom', 'Jone']
del names[2]

pop()删除并返回该元素

该方法参数为要删除的元素的索引,默认为最后一个元素的索引。

names = ['Jack', 'Lucy', 'Tom', 'Jone']
deletedname = names.pop(1)

注:删除列表元素后,如果确定不再使用该元素,则使用del语句。如果删除后还需要使用该元素,则使用 pop() 方法。

2.通过值删除

remove()根据值删除指定元素

该方法参数为要删除的元素的值。如果列表中存在多个相同的值,则该方法删除第一个该值。

names = ['Jack', 'Lucy', 'Tom', 'Jone']
deletedname = names.remove('Lucy')

合并列表元素

与字符串类似:

+ 操作符可以连接两个列表,组成一个新的列表;

* 操作符可以作用于一个列表和一个整数,实现列表的复制,返回一个新列表;

[1,2,3] + [4,5,6]

结果:[1,2,3,4,5,6]

倒序列表元素

使用 reverse() 方法可以将列表的元素倒过来。

注:该方法只是进行了倒序操作,并未将操作后的列表进行返回,即没有返回值。

#!/usr/bin/python3
list = ['zhangsan','lisi','wangwu','zhaoliu']
list.reverse()
print(list)

其他列表操作方法

clear()    移除列表中的所有元素。

index('值')    返回列表中指定元素值的索引。

count('值')   返回列表中指定元素值出现的次数。

copy()    复制列表,等同于a[:]

切片

切片可以理解为是从一个列表中复制出来的一个子列表。本质上,切片其实就是复制列表,复制部分或整个列表,生成一个新的列表。

既然要‘切’,那么就需要知道两个数值,切入点和结束点。切片的区间表示方法是用冒号隔开两个数字,左边数字是起始下标,右侧数字是结束下标,但不包括它

如:

spam = [‘a', 'b', 'c', 'd', 'e']
spam[1:4] 
结果为 [ 'b', 'c', 'd']
# 切片赋值:
spam[1:4] = ['B', 'C','D']
# 修改后的列表:['a','B','C','D','e']

注:冒号两边的数字可以省略,第一个数字省略表示从0开始,第二个数字省略表示到列表长度结束,即直到(包含)最后一个列表列表项。两个都省略 [:] 则表示复制整个列表。

用 len() 函数返回传给它的列表的长度,即列表中元素个数。

元组

元组是一种特殊的列表,使用圆括号 () 标识。列表和元组都是有序列表,索引从0开始,区别在于元祖在初始化之后就不可改变了。

多个变量同时赋值

可以是用列表或元祖对多个变量同时赋值:

name,age = ['GavinHsueh', 30]

注意:变量个数必须与列表/元组中的元素个数一致。

判断列表中是否存在目标元素

有时候,我们要检查列表、元组对象中是否存储我们要找的元素。 我们可以通过 in 这个关键字 ,比如:

a in var   # 检查 a 是否在var 中存在,存在返回True,否则返回False

而 not in 则判断是否不存在,比如

a not in var   # 检查 a 是否不在var 中,存在返回 False,否则返回 True

示例:

list1 = [1,2,3,4, 'hello']
tuple1 = (1,2,3,4, 'hello')
if 'hello' in list1:
    print('hello 在列表中存在')
if 'boy' not in tuple1:
    print('boy 在元组中不存在')

for 循环遍历列表

for循环遍历整个列表,对列表中的每个元素执行相同的操作。

for var in list:
循环体
……

for-in 后面,每个缩进的代码都是循环体的一部分。不要漏掉冒号!

a =  [1, 3, 5, 7, 9]
for var in a:
    print(var)
输出结果:1 3 5 7 9

range() 生成数字列表

range() 的三个参数意义:

  • 第一个参数表示循环变量i的开始值,如果是0,可以省略不写;

  • 第二个参数表示循环变量i的上限值,但不包含它,range中只有一个数字时,表示该参数;

  • 第三个参数表示循环变量i每次迭代循环结束后的递增值,1可以省略不写;

如:

range(1,5) => [1, 2, 3, 4]
range(1,10,2) => [1, 3, 5, 7, 9]
a = range(1,10,2)
for var in a:
    print(var)
输出结果:1 3 5 7 9
发表评论
评论通过审核后显示。