组合数据类型是指将多个数据有效组织起来并统一表示的数据类型。python中的组合数据类型可以分为序列类型(字符串、列表、元组)、集合类型(集合)、映射类型(字典).
字符串和元组是不可变序列,其余均是可变序列。学习组合数据类型时,重点要掌握如何创建、如何操作。
目录
列表
元组
列表(list)是Python中一种有序的序列结构,也是最基本的数据结构,列表中可以存放不同类型的元素,序列中的每一个元素都会被分配一个位置数字---索引,正向从0递增,反向则从-1递减。
列表可以进行的操作有:创建、增加元素、删除元素、修改元素、索引、切片、排序。
1.创建列表
(1)使用方括号[ ]
L1 = [] #空列表
L2 = [1,2,3,4,5]
L3 = ['cat','dog',2022] #可以存放不同类型的元素
print(L1)
print(L2)
print(L3)
输出结果
[]
[1, 2, 3, 4, 5]
['cat', 'dog', 2022]
(2)使用list( )
L = list() #空列表
L1 = list(range(1,10,2))
L2 = list('python list') #字符串列表
print(L)
print(L1)
print(L2)
输出结果
[]
[1, 3, 5, 7, 9]
['p', 'y', 't', 'h', 'o', 'n', ' ', 'l', 'i', 's', 't']
2. 列表增加元素
(1)append()在列表末尾增加元素
L = [1,2,3,4,5]
L.append(6)
print(L)
输出结果
[1, 2, 3, 4, 5, 6]
(2)insert( )在列表指定位置添加元素
L = [1,2,4,5,6]
L.insert(2, 3) #insert(位置,元素)
print(L)
输出结果
[1, 2, 3, 4, 5, 6]
3.列表删除元素
(1)pop()用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。可指定位置删除元素,一次只能删除一个元素。
L = ['cat', 'dog', 'tiger', 2019,1024]
m = L.pop()
print(m)
print(L)
print(L.pop(1)) #指定位置删除
print(L)
输出结果
1024
['cat', 'dog', 'tiger', 2019]
dog
['cat', 'tiger', 2019]
(2)remove()指定删除列表中某一指定的数据,但仅可删除一个数据,不可删除多个数据
注 该方法没有返回值,但会移除列表中待删除元素的第一个匹配项
L = ['cat', 'dog', 'tiger', 2019,1024]
m = L.remove(2019)
print(m)
print(L)
输出结果
None
['cat', 'dog', 'tiger', 1024]
3.列表修改元素:使用赋值的方法
L = [1,2,3,5,5,6]
L[3] = 4
print(L)
输出结果
[1, 2, 3, 4, 5, 6]
(3)del()函数
L = [1,2,3,4,5,6,7]
del L[1] #删除指定位置元素
print(L)
del L[1:4] #切片删除,end对应位置元素不删除
print(L)
del L #删除整个列表
输出结果
[1, 3, 4, 5, 6, 7]
[1, 6, 7]
注 这个输出结果出现了一个问题,第二个输出应该包含元素5,但是结果却没有,但不要误以为删除的时候包含end位置对应的元素,这和del的底层原理有关,del删除的是变量,而不是数据,在前面一步中将L[1]删除了,列表的索引会发生改变,第二步中的L[1]就是‘3’了。
4.索引:正向从0递增,反向从-1递减
L = [1,2,3,4,5,6]
print(L[0]) #常用来找列表的第一个元素
print(L[-1]) #常用来找列表的最后一个元素
print(L[0:-1])
输出结果
1
6
[1, 2, 3, 4, 5]
5.列表的排序
(1)sort()函数:sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
语法
list.sort(cmp=None, key=None, reverse=False)
L = [7,9,2,4,10,8,6]
L.sort() #默认升序
print(L)
M = ['e','a','u','o','i']
M.sort(reverse=True) #降序排列
print(M)
输出结果
[2, 4, 6, 7, 8, 9, 10]
['u', 'o', 'i', 'e', 'a']
(2)reverse()函数:列表逆序排列
L = ['A','B','C','D','E']
L.reverse() #无参函数
print(L)
输出结果
['E', 'D', 'C', 'B', 'A']
注 在使用该函数对一组数字排序时,没有得到想要的结果
元组(Tuple)与python类似,但是元组中的元素不能修改,即元组是不可变列表。还有一点不同,列表使用方括号,元组使用圆括号。除了增、删、修改等可变操作以外,其他有关列表的操作对元组依然适用。在编程时,如果我们想让一部分内容不被修改时,可以使用元组。
1.创建元组
my_tuple = (1,'a',3.14,'python') #使用圆括号创建
print(my_tuple)
my_tuple1 = 1,'a',3.14,'python' #使用逗号创建
print(my_tuple1)
my_tuple2 = tuple(my_tuple) #使用tuple()创建
print(my_tuple2)
输出结果
(1, 'a', 3.14, 'python')
(1, 'a', 3.14, 'python')
(1, 'a', 3.14, 'python')