如何让程序组合一组数据?
集合,序列(字符串,元祖和列表),字典。
集合(数据去重)
和数学中定义类似,集合元素独一无二,不能修改。用{}或者set()创建
用{}表示,元素之间用,隔开。
集合定义的两种方法:
A = {"python", 123, ("python", 123)} #集合A由字符串python,数字123和元祖构成
B = set('pypy123) #使用set函数生成集合,有五个元素p,y,1,2,3,集合元素不能重复
集合操作符:
和数学类似,存在'并','差','交','补'四种运算
并|,差-,交&,补^
<,<=,>,>=,判断子集关系
增强操作符:
集合的处理方法
S.add(x):若x不在集合S中,将x增加到S
S.discard(x):移除集合S中的x元素,若x不在集合S中,不报错
S.remove(x):移除集合S中的x元素,若x不在集合S中,产生KeyError异常
S.clear():清理集合S所有集合
S.pop():随机在集合中取出一个元素
S.copy:返回集合S副本
len(s):返回集合S的元素个数
x in S:元素是否在集合中
set(x):其他数据类型变量X转变为集合类型
序列类型及定义
序列:具有先后顺序的一组元素,元素类型可以不同,可以用序列编号访问元素。
S = []定义
x in S #判断元素x是否在S中
s+t #链接两个序列
s*n或n*s #将序列复制n次
s[i] 所以,序号可以正向递增和反向递减
s[i:j] #切片
len(s) #序列元素个数
min(S) 或 max(s) 求最大值或者最小值,如果数据类型不同(如数字和字符串),可能报错
S.index(x) #第一次出现x的下表 高级S.index(x,i,j)
S.count(x) #返回序列S中出现x的个数
元祖:是一种序列类型,一旦被创建就不可以被修改。用()或者tuple()创建。元祖操作和序列一摸一样。常用于函数返回值。
列表:是一种序列类型,元素可随意修改。用[]或者list()创建,元素之间用,隔开。
ls[i]=x 替换列表ls第i元素为x
ls[i:j:k]=lt 用列表lt替换ls切片后所对应的元素子列表
del ls[i] 删除ls中的第i个元素
del ls[i:j:k] 删除ls中从i到j以步长为k的元素
ls += lt 将lt的元素加到ls中
ls *= n 将ls复制n次
ls.append(x) 在列表最后加一个元素x
ls.clear() 删除ls中所有元素
ls.copy() 生成一个新列表,包含ls中所有元素
ls.insert(i,x) 在ls第i位置增加x元素
ls.pop(i) 在ls第位置的元素去除并且删除
ls.remove(x) 删除ls中第一个出现的x
ls.reverse() 将列表ls反转,元素倒过来
字典
映射:键(索引)和值(数据)的对应。区别于列表,字典可以用户自定义索引。
采用大括号{}和dict()创建字典,键值对用冒号:表示,元素之间用“,”分隔。
del d[k] #删除字典d中键k对应的数据值
k in d #判断键k是否在字典中
d.keys() #返回字典d中所有键信息
d.values() #返回字典d中所有值信息
d.items() #返回字典d中所有键值对信息
d.get(k, <default>) #键k存在,返回相应值,否则返回default值
d.pop(k, <default>) #键k存在,取出相应值,否则返回default值
d.popitem() #随机取出一个键值对,按照元祖格式返回
d.clear() #删除所有的键值对
len(d) #返回字典d中元素个数
d["a"] = 1 # 向d中增加键值对元素
d["a"] = 2 #修改相应键值对