列表里面的改 可以直接list[]=".." 赋值
也可以用字符串的操作方式list[].upper()等
数字类型分为:可变数据类型 不可变数据类型
不可变数据类型(可哈希 ”二分法查询”):元祖 bool int str(对于str进行的操作都形成一个新的字符串 原来字符串并没有改变)
可变数据类型(也叫不可哈希):list ,dict(唯一一个映射类型),set(集合本身是可变 但里面的元素是不可变的)
字典 的键一定是不可变数据类型(可哈西 查找速度快)值任意数据类型
dict优点:二分法查询 存储大量的关系型数据
特点:无序的(python3.5以后可能排序??不确定)
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', } # 增 dic1['high'] = 185 # 没有这个键值对,添加 dic1['age'] = 16 # 有这个键值对,则值覆盖 print(dic1) dic1.setdefault('weight', 150) # 默认值是None dic1.setdefault('name', '二哥') # 有键值对不做任何改变,没有才添加 print(dic1) <<< {'age': 16, 'name': 'jin', 'sex': 'male', 'high': 185} {'age': 16, 'name': 'jin', 'sex': 'male', 'high': 185, 'weight': 150}
# 删 dic2 = {'age': 18, 'name': 'jin', 'sex': 'male', "aaa":123,"bbb":999} print(dic2.pop('age')) # 按键删除 有返回值 返回“值” print(dic2.pop('二哥', None)) # ,没有不会报错,可设置返回值 print(dic2) print(dic2.pop('name', None)) # ,有就直接删除 print(dic2) print(dic2.popitem()) # 默认删除最后一个 返回一个删除的键值的元祖 del dic2['sex'] #按键删除,没有返回值 没有这个键的话报错 print(dic2) dic2.clear() #清空字典 print(dic2) <<< 18 None {'name': 'jin', 'sex': 'male', 'aaa': 123, 'bbb': 999} jin {'sex': 'male', 'aaa': 123, 'bbb': 999} ('bbb', 999) {'aaa': 123} {}
# 改 dic3 = {'age': 18, 'name': 'jin', 'sex': 'male', } dic = {'name': 'alex', 'weight': 75} dic3.update(dic) # 把dic覆盖更新到dic3中 原字典dic不改变 print(dic3) print(dic) <<< {'age': 18, 'name': 'alex', 'sex': 'male', 'weight': 75} {'name': 'alex', 'weight': 75}
# 查 dic4 = {'age': 18, 'name': 'jin', 'sex': 'male', } print(dic4.keys(), type(dic4.keys())) # 返回一个列表 print(dic4.values(), type(dic4.values())) print(dic4.items(), ) dic = dic4.items() print(dic) for i in dic4: # 默认打印键 print(i) for i in dic4.values(): # 打印值 print(i) for i in dic4.items(): print(i) # 打印键值 以元祖形式
#面试题 a,b交换值 a,b=1,2 print(a,b) a,b=1,2 a,b=b,a print(a,b) #内存存的1,2的地址和名称空间(变量和值得对应关系) a,b=[1,2] print(a,b) #自动识别 看里面最小单位 <<< 1 2 2 1 1 2
for k, v in dic4.items(): print(k, v) print(dic4['name']) # 没有这个键 就报错 print(dic4.get('name1', '没有这个键')) # 查找,没有的话返回设置的值 默认返回None <<< dict_keys(['age', 'name', 'sex']) <class 'dict_keys'> dict_values([18, 'jin', 'male']) <class 'dict_values'> dict_items([('age', 18), ('name', 'jin'), ('sex', 'male')]) dict_items([('age', 18), ('name', 'jin'), ('sex', 'male')]) age name sex 18 jin male ('age', 18) ('name', 'jin') ('sex', 'male') age 18 name jin sex male jin 没有这个键
# 嵌套 dic = {"name": ['alex', 'wusir', 'taibai'], 'py9': {'time': '1213','learn_money': 19800,'addr': 'CBD'}, 'age': 21} dic['age'] = 56 print(dic) dic['name'].append('ritian') dic['name'][1]=dic['name'][1].upper() #改 print(dic) # dic['py9']['female']=6 #直接往py9增加一个键值对 dic['py9'].setdefault('female',6) #用default添加 print(dic) <<< {'name': ['alex', 'wusir', 'taibai'], 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD'}, 'age': 56} {'name': ['alex', 'WUSIR', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD'}, 'age': 56} {'name': ['alex', 'WUSIR', 'taibai', 'ritian'], 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD', 'female': 6}, 'age': 56}
info=input('<<<') for i in info: if i.isalpha(): info=info.replace(i," ") l=info.split() print(len(l)) <<< <<<qqq111nn3 2
---恢复内容结束---