Python学习笔记四:04集合、字典、运算符

一、set 集合
1.定义
se = {1,2,'a','b'}  #{1, 2, 'b', 'a'}
2.特点:元素唯一,无序
se = {1,1,3,3,2,4,4}    #{1, 2, 3, 4}
se={4,3,2,1}    #{1,2,3,4}
列表是可变的,所以不能满足唯一性
se3={1,2,[3,3,4]} #TypeError: unhashable type: 'list' list不可哈希
hash((1,2,3))   #元组可以哈希
3.定义一个空集合只能用set()
se3 = set()
se4 = {}    #<class 'dict'>这是字典
4.集合的运算
se={1,2,3,4}
se2={3,4,5,6}
3 in se2    #True   属于,返回bool值
se < se2    #包含
se <= se2   #包含
#not in  #不属于
4.1 & 交集  取两个集合重复的部分
se1 = {1,2,3,4}
se2 = {3,4,5,6}
se1 & se2   #{3,4}
4.2   |   并集  取所有元素
se1 |se2    #{1,2,3,4,5,6}
4.3   -   差集  前面的集合减去后面的集合元素重复的部分
se1 - se2   #{1, 2}
4.4   ^   与非集 取两个集合各自独有的元素
se1 ^ se2   #{1, 2, 5, 6}
5.集合的方法
'''
'add', 'clear', 'copy', 'difference', 'difference_update',
'discard', 'intersection', 'intersection_update', 'isdisjoint',
'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference',
'symmetric_difference_update', 'union', 'update'
'''
5.1  s.add(x) 添加单个元素
# Add an element to a set
se.add(5)   #{1,2,3,4,5}    无序的 添加单个元素
5.2  s.update()   添加多个元素
# Update a set with the union of itself and others. 放迭代对象
se.update('123')    #{1, 2, 3, 4, '3', '2', '1'}
se.update([1,2,3])  #{1, 2, 3, 4, '3', '2', '1'}
5.3  s.remove()   移除元素
# Remove an element from a set; it must be a member.
se.remove(1)    #{2, 3, 4, '3', '2', '1'}    #指定移除
se.remove('1')    #{2, 3, 4, '3', '2'}
5.4  s.clear()    清空集合
# Remove all elements from this set.
se.clear()    #{}

二、字典
1.创建:{key:value}  (大括号创建字典的键时要加引号)
    dict(key=value)  (括号里赋值方式,名字=对象,不要引号)
    字典里的键和值用':'隔开,一对键和值组成一个项,项和项之间用','隔开
di={'a':111,'b':222,'c':333}
di={}   #class 'dict'  创建空字典
di2=dict(a=111) #{'a': 111}
a符合变量的命名规则
di2 = (2_a=111) #报错
di2 = (_a=111)  #报错
2.特点:无序,键唯一不可变,重复会被重新复制



#取值和修改
di['c']=3 #{'c': 3}
#方法
'''
'clear', 'copy', 'fromkeys',
'get', 'items', 'keys', 'pop',
'popitem', 'setdefault', 'update', 'values'
'''
#
di.fromkeys(['a','b']) #{'a': None, 'b': None}
di.fromkeys(['a','b'],123) #{'a': 123, 'b': 123}
#get(k) 如果键k在,返回键k的值,不存在则返回None
di.get('c') #3
di.get('e')
di.get('e',888) #888
di.get('c',7) #3

#items() 返回字典的各个项
#?
di.items() #dict_items([('c', 3)])

di.keys() #dict_keys(['c'])
di.values() #dict_values([3])
di.pop('c')
di={'a':111,'b':222,'c':333}
di.popitem() #('c', 333)删除最后(实则没有顺序)
#di.setdefault()
di.setdefault('a') #111
di #{'a': 111, 'b': 222}
di.setdefault('c')
di #{'a': 111, 'b': 222, 'c': None}
di.setdefault('d',444) #{'a': 111, 'b': 222, 'c': None, 'd': 444}
#类似get 但是能改变字典
di.update({'a':123,'f':555}) #{'a': 123, 'b': 222, 'c': None, 'd': 444, 'f': 555}

a,b=1,2
a==1 and b==2
not a==1
a==1 and not b==3
posted @ 2018-03-25 15:24  20班-傅毅  阅读(100)  评论(0编辑  收藏  举报