1.set数据类型用于保证一个集合元素没有重复,并且set中元素为无需的(和dict类似,和list不同)
2.创建一个set,方法为调用set()方法并调入一个list
s=set(['a','b','c'])
set不能包含重复元素,如果创建set时有重复元素,set会自动清除它
3.访问set
set的返回值为boolean类型,只能返回True和False,访问set的某个元素其实就是判断该元素是否在set中。使用in操作符来进行判断:
'a' is in s #返回True
'd' is in s #返回False
4.set数据类型特点
(1)set中元素无序
(2)set中元素类型必须是不可变的
5.set数据类型的应用
假设让用户输入星期日至星期一,Mon、Sun、Tue、Wed、Thr、Fri、Sat,使用if else语句判断会非常的繁琐
可以事先创建好一个set数据类型
weekdays=set(['Mon','Sun','Tue','Wed','Thr','Fri','Sat'])
if x in weekdays:
print 'input OK'
else:
print 'input error'
6.set的遍历
同list、dict一样,使用for循环来遍历set
#请用 for 循环遍历如下的set,打印出 name: score 来。
s=set([('bob',88),('jarry',50),('tom',87)]) #('bob',88)为tupel类型
for x in s:
print x,':',x[1]
7.set更新(插入和删除)
(1)插入
使用set的add()方法进行插入
s=set([1,2,3])
s.add(4)
若插入数值已存在,add方法不会报错,但是不会再加进去
(2)删除
使用set的remove方法
s=set([1,2,3)]
s.remove(3)
若删除数值不存在,remove方法会报错,所以在进行set的删除操作时,要先进行判断
if 4 in s:
s.remove(4)
#针对下面的set,给定一个list,对list中的每一个元素,如果在set中,就将其删除,如果不在set中,就添加进去。
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for x in L:
if x in s:
s.remove(x)
else:
s.add(x)
print s