2010/10/11
集合
1.字典的基本函数操作:
len(x) 返回字典的长度
max(x) 返回字典的键的最大值
min(x) 返回字典的键的最小值
sum(x) 返回字典中所有键的和
any(x) 真值测试,任意键为真,则返回True,否则返回False
all(x) 真值测试,所有键为真,则返回True,否则返回False
总结:所有的容器都支持以上的函数操作
实例:
d = {3:"333",8:"888",5:"555"}
len(d) #3
max(d) #8
min(d) #3
sum(d) #16
2.集合 set (help(set)可查) :
集合是可变的容器(目前学习到3种容器:列表,字典,集合);
集合内的数据对象都是唯一的(类比字典的键);
集合是无序的存储结构,集合中的数据没有先后关系(即输出时不一定按照输入的顺序);
集合是相当于只有键,没有值的字典,则键是集合的数据;
集合内的元素必须是不可变的对象(列表,字典,集合都不能放在集合里列表的值,字典中键的值均可以变化),如果赋值变化成集合,其数据集会按下实例发生一些列的数据变化,比如列表中重复的值将会去重,并将列表符号换成集合符号,而且需使用s = set([1,2,3,1])命令,不可以使用s = {1,2,3,4,2,1,1}命令
集合可迭代(可以用for等进行遍历)
(1)
生成集合:
生成空的集合:
set()
生成非空集合:
set(iterable)函数:
实例:
a = set([1,2,3,4]) #生成集合{ 1,2,3,4 }@@@@@@@@@@@@@@@@@@@@@@@@@@@@内部写为可迭代对象
a = { 1,2,3,4 } #生成集合{ 1,2,3,4 }@@@@@@@@@@@@@@@@@@@@@@@@@@@@大括号默认是字典,内部应为可迭代对象
a = set("xiaoyuxiu") #生成集合{'i', 'x', 'y', 'a', 'o', 'u'} 去重x,i !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
a = set({"name":"tarena","age":15}) #生成集合{'name', 'age'} 只留下键!!!!!!!即如果不想拆开输入的字符串,就使用列表
a = set(("abc",123,True)) #{True, 123, 'abc'}
a = set(True,None,"abc",(1,2,3),3.14) #报错,应改
a = set((True,None,"abc",(1,2,3),3.14)) #{True, None, 3.14, 'abc', (1, 2, 3)} #输出无序,内部应为可迭代对象,列表或者元组或者字典
(2)
集合的运算:
交集,全集,补集,子集,超集
A = {1,2,3}
B = {2,3,4}
C = {1}
D = {100}
交集 = {1,2}
并集 = {1,2,3,4}
补集 A - B # {1} 等同于A减AB的交集
B - A # {4} 等同于B减AB的交集
A是C的超集,A不是D的超集
注意:
A - B == {} #False 左侧是集合,右侧是字典,永远不会相等,要使用set()!!!!!!!!!!!!!!!!!!!!
生成两个集合的并集
A = {1,2,3}
B = {2,3,4}
A | B #生成并集{1,2,3,4}
生成两个集合的并集
A = {1,2,3}
B = {2,3,4}
A & B #生成交集{ 2,3 }
{1,2} & {5,6} #set()
生成两个集合的对称补集:
A = {1,2,3