零:序列
序列是Python中最基本的数据结构。对于序列中的每一个值都有其对应的位置,在Python中称为索引。由于Python中的计数逻辑,第一个索引为0,第二个索引为1,以此类推。
Python中有6个序列的内置类型:列表、元组、字符串、Unicode字符串、buffer对象和 xrange对象。
一:列表
列表是最常见、最常用的序列。常用的操作有索引、切片、加、乘、检查成员等。
创建列表
对于新建一个列表,通过方括号进行初始化。一个列表中可以存在不同的数据类型。如果要创建空列表在方括号内不添加任何数据即可。
list1 = ['sample a', 2024]
list2 = ["sample b", 1234]
list3 = []
访问列表
我们现在已经有了一个列表,现在需要取出其中的数据,这时就需要访问列表中的值。由于列表中的每一个值都有对应的索引,因此可以通过访问索引的方式访问具体数据。
Python的索引从0开始计数,于是,列表中的第一个数据对应的索引就是0,第二个数据对应的索引是1,以此类推。
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0]) # 访问列表第 1 个数据
print(list1[2]) # 访问列表第 3 个数据
print(list1[4]) # 访问列表第 5 个数据
>>>ShangHai
>>>red
>>>2024
对于访问的索引也可以从列表末尾开始计数,此时,末尾第一个值的索引就是-1,倒数第二个值是-2,以此类推。
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[-1]) # 访问列表倒数第 1 个数据
print(list1[-3]) # 访问列表倒数第 3 个数据
print(list1[-5]) # 访问列表倒数第 5 个数据
>>>1949
>>>blue
>>>Beijing
如果我们要知道列表中的所有元素,直接输出列表变量名即可。
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1)
>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
如果我们要一次性访问多个数据,比如我们要知道第一个数据到第五个数据的所有值,可以通过方括号的方式进行列表的截取。
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0:4]) # 访问第 1 到第 5 个数据
>>>['ShangHai', 'Beijing', 'red', 'blue']
使用方括号进行截取的这种方法同样适用于负数索引。
如果我们要访问从某一个位置开始后面的所有数据,也可以通过方括号实现。
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0:]) # 访问第 1 个数据之后的所有数据
>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
二:列表操作
列表元素的添加、更新和删除
列表元素的添加可以通过加法操作直接实现
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1 += ['yellow']
print(list1)
>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow']
也可以通过append()的方法实现。
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1.append('yellow')
print(list1)
>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow']
两种方法都是默认在列表末尾添加数据和索引。
如果我们知道一个数据和它的索引,我们可以通过索引直接修改元素值
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1[3] = 'yellow'
print(list1)
>>>['ShangHai', 'Beijing', 'red', 'yellow', 2024, 1949]
对于删除操作可以使用 del 语句,删除后,该位置后面的所有元素会自动向前位移一位,并改变原先索引指向的值。
list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[2])
del list1[2]
print(list1[2])
>>>red
>>>blue
列表整体操作
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语言中的多维数组,也可以理解为在“背包里塞背包”
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
三:列表函数和方法
函数:
list1 = [0, 1, 2, 3, 4]
print(len(list1)) # 返回列表长度
print(max(list1)) # 返回列表最大值
print(min(list1)) # 返回列表最小值
>>>5
>>>4
>>>0
方法:
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]