Python基础(4)_字典、集合、bool值
三、字典
定义:{key1:value1,key2:value2},key-value结构,key必须是不可变类型,或者可hash
基本形式:key:value
特性:
1.可存放多个值
2.可修改指定key对应的值,可变
3.无序
字典的创建:
person = {"name": "sb", 'age': 18} 或 person = dict(name='sb', age=18)
person = dict({"name": "sb", 'age': 18})
person = dict((['name','sb'],['age',18]))
{}.fromkeys(seq,100) #不指定100默认为None
注意:
1 >>> dic={}.fromkeys(['k1','k2'],[]) 2 >>> dic 3 {'k1': [], 'k2': []} 4 >>> dic['k1'].append(1) 5 >>> dic 6 {'k1': [1], 'k2': [1]}
字典常见操作函数:
#新增或更改 d={} d['x']=1 print(d) #删除 d.pop('x') #pop删除,可返回values值 d.popitem() #随机删除键值对,删除的值为元组 #键、值、键值对 d.keys() d.values() d.items() #循环 d={'x':1,'u':2} for k in d: print (k,d[k]) #长度 d={'x':1,'u':2} print(len(d)) #成员运算 d={'x':1,'u':2} print('x' in d) print(1 in d.values())
键值对转化为元祖:
取字典key值
取字典values
setdefault 只能添加没有的key值
update 更新字典,有key值覆盖,没有追加,原字典不变
四、集合
集合的作用
一:关系运算
二:去重
定义集合:
集合内的元素必须是唯一的;
集合内的元素必须是可hash的,也是就不可变类型;
集合是无序的
s={'egon',123,'egon','1'} #s=set({'egon',123,'egon','1'} )
# print(s,type(s))
循环:
# s={'1',1,(1,2),'a','b'} # # for i in s: # print(i)
关系运算:
#关系运算 python_s={'egon','alex','钢蛋','老王'} linux_s={'alex','钢蛋','欧德博爱','艾里科四'} #取共同部分:交集 # print(python_s & linux_s) # #取老男孩所有报名学习的学生:并集 # print(python_s | linux_s) # #取只报名了python课程的学生:差集 # print(python_s - linux_s) #取只报名了linux课程的学生:差集 # print(linux_s - python_s) #取没有同时报名python和linux课程的学:对称差集 # print(linux_s ^ python_s)
集合方法:
1 # python_s={'egon','alex','钢蛋','老王'} 2 # linux_s={'alex','钢蛋','欧德博爱','艾里科四'} 3 4 # print(python_s.intersection(linux_s))# 交集:python_s & linux_s 5 6 # print(python_s.union(linux_s))#并集:| 7 8 # print(python_s.difference(linux_s)) #python_s-linux_s 9 10 # print(python_s.symmetric_difference(linux_s))# 对称差集,python_s ^ linux_s 11 12 运行结果: 13 # python_s={'egon','alex','钢蛋','老王'} 14 # linux_s={'alex','钢蛋','欧德博爱','艾里科四'} 15 # python_s.difference_update(linux_s) 16 # print(python_s)
update 追加覆盖,无返回值
add 追加,无返回值
diacard删除,以元素名删除,没有,不报错
remove 删除,没有报错
pop 随机删除,没有参数
issubset 判断s1是否是s2的子集
issuperset 判断s1是否是s2的父集
isdiajoint() 判断是否有交集,没有交集返回 True
总结:
1.可变不可变
可变:列表,字典
不可变:数字,字符串,元组
2.存放值的个数
一个值:数字,字符串
多个值(容器类型):列表,元组,字典
3.取值方式
直接取值:数字
序列类型:字符串,元组,列表
映射类型:字典
六、bool值
所有的数据类型自带布尔值,只有0,None,空的布尔值为False
1 while 1: 2 cmd=input('>>: ') 3 if not cmd: 4 continue 5 print('========>cmd',cmd)