人话学Python-列表

零:序列

序列是Python中最基本的数据结构。对于序列中的每一个值都有其对应的位置,在Python中称为索引。由于Python中的计数逻辑,第一个索引为0,第二个索引为1,以此类推。

Python中有6个序列的内置类型:列表、元组、字符串、Unicode字符串、buffer对象和 xrange对象。

一:列表

列表是最常见、最常用的序列。常用的操作有索引、切片、加、乘、检查成员等。

创建列表

对于新建一个列表,通过方括号进行初始化。一个列表中可以存在不同的数据类型。如果要创建空列表在方括号内不添加任何数据即可。

python 复制代码
list1 = ['sample a', 2024]
list2 = ["sample b", 1234]
list3 = []

访问列表

我们现在已经有了一个列表,现在需要取出其中的数据,这时就需要访问列表中的值。由于列表中的每一个值都有对应的索引,因此可以通过访问索引的方式访问具体数据。

Python的索引从0开始计数,于是,列表中的第一个数据对应的索引就是0,第二个数据对应的索引是1,以此类推。

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0])    # 访问列表第 1 个数据
print(list1[2])    # 访问列表第 3 个数据
print(list1[4])    # 访问列表第 5 个数据

>>>ShangHai
>>>red
>>>2024

对于访问的索引也可以从列表末尾开始计数,此时,末尾第一个值的索引就是-1,倒数第二个值是-2,以此类推。

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[-1])    # 访问列表倒数第 1 个数据
print(list1[-3])    # 访问列表倒数第 3 个数据
print(list1[-5])    # 访问列表倒数第 5 个数据

>>>1949
>>>blue
>>>Beijing

如果我们要知道列表中的所有元素,直接输出列表变量名即可。

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1)

>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]

如果我们要一次性访问多个数据,比如我们要知道第一个数据到第五个数据的所有值,可以通过方括号的方式进行列表的截取。

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0:4])    # 访问第 1 到第 5 个数据

>>>['ShangHai', 'Beijing', 'red', 'blue']

使用方括号进行截取的这种方法同样适用于负数索引。

如果我们要访问从某一个位置开始后面的所有数据,也可以通过方括号实现。

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0:])    # 访问第 1 个数据之后的所有数据

>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]

二:列表操作

列表元素的添加、更新和删除

列表元素的添加可以通过加法操作直接实现

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1 += ['yellow']
print(list1)

>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow']

也可以通过append()的方法实现。

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1.append('yellow')
print(list1)

>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow']

两种方法都是默认在列表末尾添加数据和索引。

如果我们知道一个数据和它的索引,我们可以通过索引直接修改元素值

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1[3] = 'yellow'
print(list1)

>>>['ShangHai', 'Beijing', 'red', 'yellow', 2024, 1949]

对于删除操作可以使用 del 语句,删除后,该位置后面的所有元素会自动向前位移一位,并改变原先索引指向的值。

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[2])
del list1[2]
print(list1[2])

>>>red
>>>blue

列表整体操作

python 复制代码
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
length = len(list1)     # 计算列表长度
print(length)

list2 = ['yellow', 1234]
list3 = list1 + list2   # 列表相加,默认添加到末尾
length = len(list3)
print(length)
print(list3)

listnum = [1, 2, 3]
listnum *= 4            # 列表元素重复,相当于自己和自己相加n次
length = len(listnum)
print(length)
print(listnum)

judge = 3 in listnum    # 判断元素是否存在列表中
print(judge)

>>>6
>>>8
>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow', 1234]
>>>12
>>>[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>True

列表嵌套

类似与C语言中的多维数组,也可以理解为在"背包里塞背包"

python 复制代码
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
listnum = [list1, list2]
print(listnum)

print(listnum[0])

print(listnum[0][2])

>>>[[1, 2, 3, 4], [5, 6, 7, 8]]
>>>[1, 2, 3, 4]
>>>3

三:列表函数和方法

函数:

python 复制代码
list1 = [0, 1, 2, 3, 4]
print(len(list1))   # 返回列表长度
print(max(list1))   # 返回列表最大值
print(min(list1))   # 返回列表最小值

>>>5
>>>4
>>>0

方法:

python 复制代码
list1 = [0, 1, 4, 2, 3]
print('Origin:', list1)

list1.append(4)                   # 在列表末尾添加数据
print('append:', list1)

print('count:', list1.count(4))   # 计算数据在列表中出现的次数

print('index:', list1.index(2))   # 返回数据在列表中第一次出现对应的索引

list1.insert(3, 2)                # 在指定索引位置插入数据
print('insert:', list1)

list1.pop()                       # 默认删除列表最后一个数据
print('pop:', list1)

list1.remove(2)                   # 删除列表中第一次出现的指定数据
print('remove:', list1)

list1.reverse()                   # 列表翻转
print('reverse:', list1)

list2 = list1.copy()              # 列表复制
print('copy:', list2)

list1.sort()                      # 列表递增排序
print('sort:', list1)

list2.sort(reverse=True)          # 列表倒序排序
print('sort reverse:', list2)

>>>Origin: [0, 1, 4, 2, 3]
>>>append: [0, 1, 4, 2, 3, 4]
>>>count: 2
>>>index: 3
>>>insert: [0, 1, 4, 2, 2, 3, 4]
>>>pop: [0, 1, 4, 2, 2, 3]
>>>remove: [0, 1, 4, 2, 3]
>>>reverse: [3, 2, 4, 1, 0]
>>>copy: [3, 2, 4, 1, 0]
>>>sort: [0, 1, 2, 3, 4]
>>>sort reverse: [4, 3, 2, 1, 0]
相关推荐
Suckerbin2 分钟前
PHP 数组数据结构
开发语言·数据结构·php
技术程序猿华锋5 分钟前
【ChatGPT大模型开发调用】如何获得 OpenAl API Key?
python·chatgpt·flask
hlsd#16 分钟前
go web单体项目 学习总结
开发语言·学习·golang
为什么每天的风都这么大18 分钟前
编译faiss的C++ API
开发语言·c++·faiss
nameofworld21 分钟前
前端面试笔试(五)
开发语言·前端·javascript·面试·递归
BIM云平台开发25 分钟前
关于return,yield 和 yield return
java·开发语言·数据结构·c#
小柯J桑_25 分钟前
C++:用红黑树封装map与set-2
开发语言·c++·set·map·红黑树
zwm_yy37 分钟前
Dockerfile && docker-compose
开发语言·docker
敲代码不忘补水1 小时前
Python Matplotlib 经典 3D 绘图类型:从二维到三维的可视化解析
开发语言·python·3d·数据分析·numpy·pandas·matplotlib
码农飞飞1 小时前
详解Rust字符串用法
开发语言·算法·rust·string·所有权·字符串用法