/表示单一数据的类型称为基本数据类型。
/能够表示多个数据的类型,称为组合数据类型。
/序列类型:列表(list),字符串(str),元组(tuple)
/集合类型:集合(set)
/映射类型:字典(map)
/序列类型是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。
/集合类型是一个元素集合,元素之间无序,相同元素在集合中唯一。
/映射类型是"键"-"值"数据项的组合,每个元素都是一个键值对,表示为(key,value)。
/序列类型的通用操作符和函数
1. x in s :如果x是s的元素,返回True,否则返回False。
2. x not in s :如果x不是s的元素,返回True,否则返回False。
3. s + t :连接s和t。
4. s*n或n*s:将序列s重复n遍。
5. s[i] :索引,返回s中第i个元素。
6. s[i:j] :分片。返回列表s中第i到j个元素的子序列。(不包含第j个元素)
7. s[i:j:k] :步骤分片。返回包含序列s中第i到第j个元素,以k为步长的子序列。
8. len(s) :序列s的元素个数。(长度)
9. min(s) :序列s中的最小值。
10. max(s) :序列s中的最大值。
11. s.index(x[,i[,j]]) :序列s中从i开始到j位置中,出现元素x的位置。
12. s.count(x) :序列s中出现x的总个数。
/元组(tuple)是序列类型中比较特殊的类型,一经创建就不能被修改。元组类型采用逗号和圆括号(可选)来表示。
/一个元组可以作为另一个元组的元素,可以采用多级索引获取信息。tuple[x][y]即表示索引元组tuple中第x元素(该元素应为元组类型)中的序号为y的元素。
/元组多用于:函数多返回值、多变量同步赋值、循环遍历
/def func(x): #函数多返回值
return x,x**3
/a,b = 'dog' , 'tiger' #多变量同步赋值
a,b = (b,a)
/import math
for x,y in ((1,0),(2,5),(3,8)):
print(math.hypot(x,y)) #求多个坐标值到原点的距离
/集合元素是无序组合,不可索引,不可分片,不可变,不可修改,不可重复。
/由于集合是不可重复的,所以可用于元素去重。
/集合类型的操作符
1. S-T或S.difference(T) :返回一个新集合,包含集合S中的元素,但不包含集合T中的元素。
2. s-=或S.difference_update(T) :更新集合S,包含在集合S中的元素,但不要集合T中的元素。
3. S&T或S.intersection(T) :返回一个新集合,包含同时在集合S和集合T中的元素。
4. S&=T或S.intersection_update(T) :更新集合S,包含同时在集合S和集合T中的元素。
5. S^T或S.symmetric_difference(T) :返回一个新集合,包含集合S和集合T中的元素,但不包含同时在集合S和集合T中的元素。
6. S^=T或S.symmetric_difference_update(T) :更新集合S,包含集合S和集合T中的元素,但不包含同时在集合S和集合T中的元素。
7.S|T或S.union(T) :返回一个新集合包含集合S和集合T中所有元素。
8.S|=T或S.update(T) :更新集合S,包括集合S和集合T中所有元素。
9.S<=T或S.issubset : 判断集合S与集合T相同,或集合S是集合T的子集,返回True,否则返回False。可以用S
10.S>=T或S.issuperset :判断集合S与集合T相同,或集合S是集合T的超集,返回True,否则返回False。可以用S>T判断是否S是T的真超集。
/上述中表达了集合类型的4种基本操作:交集(&)、并集(|)、差集(-)、补集(^)。
/集合类型的操作函数或方法
1. S.add(x) :如果数据项x不在集合S中,将x增加到集合S。
2. S.clear() :移除集合S中所有数据项。
3. S.copy() :返回一个集合S的副本。
4. S.pop() :随机返回集合S中的一个元素,如果S为空,产生KeyError异常。
5. S.discard(x) :如果元素x在集合S中,将x移除,如果x不在集合S中,不报错。
6. S.remove(x) :如果元素在集合S中,将第一个x移除,如果x不在集合S中,产生KeyError异常。
7. S.isdisjoint(T) :如果集合S与集合T没有相同元素,返回True。
8. len(S) :返回集合S的元素个数。
9. x in S :如果x在集合S中,返回True,如果不在,返回False。
10. x not in S :如果x不是集合S中的元素,返回True,否则返回False。
/集合类型主要用于3个场景:成员关系测试、元素去重和删除数据项。例如:
"BIT" in {"pyrhon","BIT","123","good"} #成员关系测试
True
tup = ("python","BIT","123","GOOD","123") #元素去重
set(tup)
{"python","BIT","123","GOOD"}
newtup = tuple(set(tup) - {"python"}) #删除数据项
{"BIT","123","GOOD"}
/映射类型是“键-值”数据项的组合,每个元素是一个键值对,即元素是(key,value),元素之间是无序的。键key表示一个属性,也可以理解为一个类别或项目,值(value)是属性的内容,键值对刻画了一个属性和它的值。
/序列是数值与位置的关系;集合是不重复数值的无序组合;映射是数值与名称的关系。