python序列
这里指的序列,主要包括的数据类型为:列表(list)、字典(dict)、元组(tuple)、集合(set)。
序列操作
1、列表
列表拼接
(1)利用 “+” 号
a = [1,2]
b = [3,4]
c = a + b # c = [1,2,3,4]
(2)切片赋值
a = [1,2]
b = [3,4]
a[len(a):len(a)] = b # a = [1,2,3,4]
(3)extend 方法
a = [1,2]
b = [3,4]
a.extend(b) # a = [1,2,3,4]
元素插入
(1)insert 方法
指定索引位置添加
a = [1,2]
a.insert(1,999) # a = [1, 999, 2]
# a.pop(1)
(2)append 方法
末尾添加,对应删除方法 pop()
a = [1,2]
a.append(999) # a = [1, 2, 999]
# a.pop()
元素删除
(1)pop 方法
按照位置(索引)删除
a = [1,2]
a.pop() # a=[1]
b = [1,2]
b.pop(0) # b = [2]
(2)remove 方法
根据元素的值进行删除
a = [1,2]
a.remove(2) # a=[1]
元素排序
a = [5,6,7,8]
# 逆序排列
a.sort(reverse=True) # a = [8,7,6,5]
# 根据函数指定特定位置的元素排序
b = [(1,'A',3), (3,'c',9), (2,'q',6)]
b.sort(key=lambda x:x[2])
# b = [(1, 'A', 3), (2, 'q', 6), (3, 'c', 9)]
2、字典
字典生成:
(1)等式
x = dict(a=123,b=23,c='qqw123') # {'a': 123, 'c': 'qqw123', 'b': 23}
(2)利用zip函数
a = [1,2,3]
b = ['a','b','c']
c = dict(zip(a,b)) # {1: 'a', 2: 'b', 3: 'c'}
字典(按照key(键)或value(值))排序:
(1)利用 sorted 函数和 lambda 函数
x = {1:111, 3: 99, 2: 100}
y = x.copy()
y1 = sorted(x.items(),key=lambda x:x[0])
y2 = sorted(y.items(),key=lambda x:x[1])
# y1 = [(1, 111), (2, 100), (3, 99)]
# y2 = [(3, 99), (2, 100), (1, 111)]
(2)利用 sorted 函数和 operator 模块
import operator
x = {1:111, 3: 99, 2: 100}
y = x.copy()
z1 = sorted(x.items(), key=operator.itemgetter(1)) # value 升序
z2 = sorted(y.items(), key=operator.itemgetter(0), reverse=True) # key 降序
# z1 = [(3, 99), (2, 100), (1, 111)]
# z2 = [(3, 99), (2, 100), (1, 111)]
字典合并,推荐使用方法 2 或者方法 3 。
(1)方法1
a = {1:'a'}
b = {2:'223'}
c = dict(a.items() + b.items()) # c = {1: 'a', 2: '223'}
(2)方法2
a = {1:'a'}
b = {2:'223'}
a.update(b) # a = {1: 'a', 2: '223'}
(3)方法3
a = {1:'a'}
b = {2:'223'}
c = dict(a, **b) # c = {1: 'a', 2: '223'}
字典元素的删除
(1)pop 方法
c = {1: 'a', 2: '223'}
c.pop(1) # c = {2: '223'}
(2)del 方法
c = {1: 'a', 2: '223'}
del c[1] # c = {2: '223'}
3、集合
获取两个集合 的并集:
x = {1,2,3}
y = {3,4}
z = x|y # set([1, 2, 3, 4])
获取两个集合 的交集(相同的元素),两种方法:
x = {1,2,3}
y = {3,4}
z = x & y # set([3])
z = x.intersection(y) # set([3])
获取两个集合的差集:
x = {1,2,3}
y = {3,4}
z = y.difference(x) # y中有而x中没有的元素,set([4])
4、元组
元组不可变(一级元素不可变),不支持元素删除,只能完全删除整个元组,支持索引,切片,使用 “+” 号合并,支持的函数len ,min ,max 。