序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。在本节课程中,我们将学习列表的相关知识。

列表的基本概念

列表是一个有序的序列。

列表用一对 [ ] 生成,中间的元素用 , 隔开,其中的元素不需要是同一类型,同时列表的长度也不固定。

列表

创建列表

l = [1, 2.0, 'hello']
print(l)

# 运行结果: [1, 2.0, 'hello']

创建空列表

空列表可以用 [] 或者 list() 生成:

empty_list = []
empty_list
# 运行结果: []

empty_list = list()
empty_list
#运行结果: []

列表的常见操作

长度:用 len 查看列表长度

l = [1, 2.0, 'hello']
len(l)

# 运行结果: 3

加法/拼接: 相当于将两个列表按顺序连接

a = [1, 2, 3]
b = [3.2, 'hello']
a + b

# 运行结果:[1, 2, 3, 3.2, 'hello']

乘法:列表与整数相乘,相当于将列表重复相加

a * 3

# 运行结果:[1, 2, 3, 1, 2, 3, 1, 2, 3]

索引和分片:

列表和字符串一样可以通过索引和分片来查看它的元素。

a = [10, 11, 12, 13, 14]
a[0]
# 运行结果:10

# 反向索引
a[-1]
#运行结果:14

#分片
a[2:-1]
#运行结果:[12, 13]

添加元素

append:向列表添加单个元素
l.append(ob) 将元素 ob 添加到列表 l 的最后。

a = [10, 11, 12]
a.append(11)
print(a)

# 运行结果:[10, 11, 12, 11]

append 每次只添加一个元素,并不会因为这个元素是序列而将其展开:

a = [10, 11, 12]
a.append(['a', 'b'])
print(a)

#运行结果: [10, 11, 12, ['a', 'b']]

extend: 向列表添加序列元素
l.extend(lst) 将序列 lst 的元素依次添加到列表 l 的最后,作用相当于 l += lst

a = [10, 11, 12]
a.extend(['a', 'b'])
print(a)

#运行结果: [10, 11, 12, 'a', 'b']

insert: 插入元素
l.insert(idx, ob) 在索引 idx 处插入 ob ,之后的元素依次后移。

a = [10, 11, 12, 13, 11]
# 在索引 3 插入 'a'
a.insert(3, 'a')
print(a)

#运行结果: [10, 11, 12, 'a', 13, 11]

删除元素

del:根据下标进行删除

a = [1002, 'a', 'b', 'c']
del a[0]
print(a)

#运行结果: ['a', 'b', 'c']

pop:弹出元素
l.pop(idx) 会将索引 idx 处的元素删除,并返回这个元素。未指定 idx 时,默认为列表最后一个元素。

a = [1002, 'a', 'b', 'c']
a.pop()
print(a)

#运行结果:[1002, 'a', 'b']

remove:根据元素的值进行删除
l.remove(ob) 会将列表中第一个出现的 ob 删除,如果 ob 不在 l 中会报错。

a = [1002, 'a', 'b', 'c', 'b']
a.remove("b")
print(a)

#运行结果:[1002, 'a', 'c', 'b']

测试从属关系

in 来看某个元素是否在某个序列(不仅仅是列表)中;

not in来判断是否不在某个序列中。

a = [10, 11, 12, 13, 11]
print(10 in a)
print(10 not in a)

#运行结果: 
# True
# False

index 查找某个元素在列表中的位置:

l.index(ob) 返回列表中元素 ob 第一次出现的索引位置,如果 ob 不在 l 中会报错。

a = [10, 11, 12, 13, 11]
a.index(11)

# 运行结果: 1

count 查找列表中某个元素出现的次数:

a = [10, 11, 12, 13, 11]
a.count(11)

# 运行结果:2

修改元素

修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改

a = [10, 11, 12, 13, 11]
a[0] = "a"
a

# 运行结果: ['a', 11, 12, 13, 11]

排序

sort方法将 list 按特定顺序重新排列,默认为由小到大,参数 reverse=True 可改为倒序,由大到小。

# 从小到大排序
a = [10, 1, 11, 13, 11, 2]
a.sort()
print(a)

# 运行结果:[1, 2, 10, 11, 11, 13]


# 从大到小排序
a = [10, 1, 11, 13, 11, 2]
a.sort(reverse=True)
print(a)

# 运行结果:[13, 11, 11, 10, 2, 1]

如果不想改变原来列表中的值,可以使用 sorted 函数:

a = [10, 1, 11, 13, 11, 2]
b = sorted(a)
print("a:",a)
print("b:",b)

#运行结果:
# a: [10, 1, 11, 13, 11, 2]
# b: [1, 2, 10, 11, 11, 13]

列表反向

l.reverse() 会将列表中的元素从后向前排列。

a = [10, 1, 11, 13, 11, 2]
a.reverse()
print(a)

#运行结果: [2, 11, 13, 11, 1, 10]

如果不想改变原来列表中的值,可以使用分片:

a = [10, 1, 11, 13, 11, 2]
b = a[::-1]
print("a:",a)
print("b:",b)

# 运行结果:
# a: [10, 1, 11, 13, 11, 2]
# b: [2, 11, 13, 11, 1, 10]

博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/RePython4.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 06 月 09 日
如果觉得我的文章对你有用,请随意赞赏