python基础_元组操作+字典操作+集合操作
元组书写格式
tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
一般写元组的时候,推荐在最后加入 逗号
元素不可被修改,不能被增加或者删除
元组操作
1. 索引 v = tu[0] print(v) 2. 切片 v = tu[0:2] print(v) 3. 可以被for循环,可迭代对象 for item in tu: print(item) 4. 转换 s = "asdfasdf0" li = ["asdf","asdfasdf"] tu = ("asdf","asdf") v = tuple(s) print(v) ('a', 's', 'd', 'f', 'a', 's', 'd', 'f', '0') v = tuple(li) print(v) ('asdf', 'asdfasdf') v = list(tu) print(v) ['asdf', 'asdf'] v = "".join(tu) print(v) asdfasdf 5.元组的一级元素不可修改/删除/增加 元组,有序。 tu = (111,"alex",(11,22),[(33,44)],True,33,44,) v = tu[3][0][0] print(v) v=tu[3] print(v) tu[3][0] = 567 print(tu) 33 [(33, 44)] (111, 'alex', (11, 22), [567], True, 33, 44)
字典书写格式
info = {
"k1": "v1", # 键值对
"k2": "v2"
}
字典操作
1.字典的value可以是任何值 info = { "k1": 18, "k2": True, "k3": [11, [], (), 22, 33, { 'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22),}], "k4": (11,22,33,44)} print(info) {'k1': 18, 'k2': True, 'k3': [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)} 2.列表、字典不能作为字典的key 布尔值(True和False会与1和0重复导致无法显示) 同一个key,只能对应一个value,如果有两个相同的key,则会选择先输入的value info ={ 1: 'asdf', "k1": 'asdf', True: "123", # [11,22]: 123 (11,22): 123, # {'k1':'v1'}: 123 } print(info) {1: '123', 'k1': 'asdf', (11, 22): 123} 这里True不会显示,和1重复 True 1 False 0 info ={ "k1": 'asdf', True: "123", # [11,22]: 123 (11,22): 123, # {'k1':' v1'}: 123 } print(info) {'k1': 'asdf', True: '123', (11, 22): 123} 3.字典无序 info = { "k1": 18, "k2": True, "k3": [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22),} ], "k4": (11,22,33,44) } print(info) 4.索引方式找到指定元素 info = { "k1": 18, "k2": True, "k3": [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22),} ], "k4": (11,22,33,44) } v = info['k1'] print(v) v = info['k3'][5]['kk3'][0] print(v) 18 11 5.字典支持 del 删除 info = { "k1": 18, "k2": True, "k3": [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22),} ], "k4": (11,22,33,44) } del info['k1'] print(info) del info['k3'][5]['kk1'] print(info) {'k2': True, 'k3': [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)} {'k2': True, 'k3': [11, [], (), 22, 33, {'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)} 6.for循环 dict info = { "k1": 18, "k2": True, "k3": [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11,22),} ], "k4": (11,22,33,44) } for item in info: print(item) k1 k2 k3 k4 for item in info.keys(): print(item) k1 k2 k3 k4 for item in info.values(): print(item) 18 True [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}] (11, 22, 33, 44) for item in info.keys(): print(item,info[item]) k1 18 k2 True k3 [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}] k4 (11, 22, 33, 44) for k,v in info.items(): print(k,v) k1 18 k2 True k3 [11, [], (), 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}] k4 (11, 22, 33, 44) 7.根据序列,创建字典,并指定统一的值 v = dict.fromkeys(["k1",123,"999"],123) print(v) {'k1': 123, 123: 123, '999': 123} 8.根据Key获取值,key不存在时,可以指定默认值(None) dic = { "k1": 'v1', "k2": 'v2' } v = dic['k1'] print(v) v1 v = dic['k11111'] print(v) 报错 v = dic.get('k1',111111) print(v) v1 v = dic.get('k111111',111111) print(v) 111111 9.删除并获取值 dic = { "k1": 'v1', "k2": 'v2' } v = dic.pop('k1',90) print(dic,v) {'k2': 'v2'} v1 dic = { "k1": 'v1', "k2": 'v2' } k,v = dic.popitem() print(dic,k,v) {'k1': 'v1'} k2 v2 10.设置值 已存在,不设置,获取当前key对应的值 不存在,设置,获取当前key对应的值 dic = { "k1": 'v1', "k2": 'v2' } v = dic.setdefault('k1','123') print(dic,v) {'k1': 'v1', 'k2': 'v2'} v1 dic = { "k1": 'v1', "k2": 'v2' } v = dic.setdefault('k1111','123') print(dic,v) {'k1': 'v1', 'k2': 'v2', 'k1111': '123'} 123 11.更新 dic = { "k1": 'v1', "k2": 'v2' } dic.update({'k1': '111111','k3': 123}) print(dic) dic.update(k1=123,k3=345,k5="asdf") print(dic) {'k1': '111111', 'k2': 'v2', 'k3': 123} {'k1': 123, 'k2': 'v2', 'k3': 345, 'k5': 'asdf'}
集合操作
1.每个元素必须是不可变类型
2.不可重复
3.无序
s=set('hello') print(s) {'e', 'l', 'o', 'h'} s=set(['alex','alex','sb']) print(s) {'alex', 'sb'} s={1,2,3,4,5,6,'sb'} 1.添加 s.add('s') 2.清空 s.clear() 3.拷贝 s1=s.copy() 4.随机删 s.pop() 5.指定删除 s.remove('sb') s.remove('hellol') #删除元素不存在会报错 s.discard('sbbbb')#删除元素不存在不会报错 python_l=['lcg','szw','zjw','lcg'] linux_l=['lcg','szw','sb'] p_s=set(python_l) l_s=set(linux_l) 6.求交集 print(p_s,l_s) print(p_s.intersection(l_s)) print(p_s&l_s) 7.求并集 print(p_s.union(l_s)) print(p_s|l_s) 8.求差集 print('差集',p_s-l_s) print(p_s.difference(l_s)) print('差集',l_s-p_s) print(l_s.difference(p_s)) 9.求交叉补集 print('交叉补集',p_s.symmetric_difference(l_s)) print('交叉补集',p_s^l_s) 10.求差集更新 p_s=p_s-l_s p_s.difference_update(l_s) print(p_s) 11.判断是否有相同的元素 s1={1,2} s2={2,3,5} print(s1.isdisjoint(s2)) False s1={1} s2={2,3,5} print(s1.isdisjoint(s2)) True 12.判断是否是子集 s1.issubset(s2)#s1 是s2 的子集 13.盘判断是否是父集 s2.issuperset(s1)#s2 是s1 的父集 14.更新多个值 s1={1,2} s2={2,3,4,5} s1.update(s2) print(s1) {1, 2, 3, 4, 5} s1.add(3) #更新一个值 s1.add(s2)#报错 s1.add(2,3,4,5)#报错 s1.update(2,3,4,5)#报错 15.不可变集合 s=frozenset('hello')

浙公网安备 33010602011771号