day005 基本数据类型(dict)
一、dict简介
数据类型划分:可变数据类型(list,dict set 不可哈希)and
不可变数据类型(元组,bool int str 可哈希)
dict{key1:value1, key2:value, key3:value......},快速(二分法)查询、存储大量的关系型数据、无序
. key 必须是不可变数据类型,可哈希,
value:任意数据类型。
1 # 增 setdefault 2 dic1['high'] = 185 #没有键值对,添加 3 dic1['age'] = 16 #如果有键,则值覆盖 4 5 dic1.setdefault('weight') # 有键值对,不做任何改变,没有才添加。 6 dic1.setdefault('weight',150) 7 dic1.setdefault('name','二哥') 8 print(dic1) 9 10 # 删 pop、popitem、del、clear 11 print(dic1.pop('age')) # 有返回值,按键去删除 12 print(dic1.pop('二哥',None)) # 可设置返回值 13 print(dic1) 14 15 print(dic1.popitem()) # 随机删除 有返回值 元组里面是删除的键值。 16 print(dic1) 17 18 del dic1['name1'] 19 print(dic1) 20 del dic1 21 print(dic1) 22 dic1.clear() #清空字典 23 24 # 改 update 25 dic1['age'] = 16 26 27 dic = {"name":"jin","age":18,"sex":"male"} 28 dic2 = {"name":"alex","weight":75} 29 dic2.update(dic) # 30 print(dic) 31 print(dic2) 32 33 # 查 keys、value、items 34 dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',} 35 print(dic1.keys(),type(dic1.keys())) 36 print(dic1.values()) 37 print(dic1.items())
PS:一般用dic1.get(key,'没有这个键') 去进行查询
二、dict嵌套
1 dic = { 2 'name':['alex','wusir','taibai'], 3 'py9':{ 4 'time':'1213', 5 'learn_money':19800, 6 'addr':'CBD', 7 }, 8 'age':21 9 } 10 11 dic['age'] = 56 12 print(dic['name']) 13 dic['name'].append('ritian') 14 15 l = [1,2,'wusir'] 16 l[2] = l[2].upper() 17 dic['name'][1] = dic['name'][1].upper() 18 print(dic)
三、小小练习
把 ‘fhdklah123rfdj12fdjsl3’ 变成 ' 123 12 13'
1 info = input('>>>').strip() 2 3 for i in info: 4 if i.isalpha(): 5 info = info.replace(i," ") 6 7 l = info.split() 8 print(len(l))
四、作业
1、元素分类
有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
1 li= [11,22,33,44,55,66,77,88,99,90] 2 3 dic ={} 4 l_greater=[] #大于66的所有值列表 5 l_less=[] #小于66的所有值列表 6 7 for i in li: 8 if i == 66:continue 9 if i > 66 : 10 l_greater.append(i) 11 else : 12 l_less.append(i) 13 14 dic.setdefault('k1',l_greater) 15 dic.setdefault('k2',l_less) 16 print(dic)
2、输出商品列表,用户输入序号,显示用户选中的商品。商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑
…
2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
1 flag = True 2 while flag: 3 li = ["手机", "电脑", "鼠标垫", "游艇"] 4 for i in li: 5 print('{}\t\t{}'.format(li.index(i)+1,i)) 6 7 num_of_chioce = input('请输入选择的商品序号/输入Q或者q退出程序:') 8 if num_of_chioce.isdigit(): 9 num_of_chioce = int(num_of_chioce) 10 if num_of_chioce > 0 and num_of_chioce <= len(li): 11 print(li[num_of_chioce-1]) 12 else:print('请输入有效数字') 13 elif num_of_chioce.upper() == 'Q':break 14 15 else:print('请输入数字')

浙公网安备 33010602011771号