05、python的基础-->字典的增、删、改、查
1、字典的增

dict = {'age':19,'name':'老王','hobby':'girl'} dict['sex'] = 'boy' #没有键值对,直接添加 dict['age'] = '20' #有键值对,覆盖值 dict.setdefault('job','boss') #无键值添加,有键值不覆盖 print(dict)
2、字典的删

dict = {'age':19,'name':'老王','hobby':'girl'} dict.pop('name') #按键删除 print(dict.pop('name') ) #有返回值 print(dict.pop('wight','None') ) #无设置值会报错,可以随意设置返回值,一般用None dict.popitem() #3.5 是随机删除,3.6 以上有序,默认删除最后,有返回值,元组-->删除的键值 dict.clear() # 清空字典键值 del dict['name'] # 删除字典键值,一般不用,无键会报错,可以直接删除字典 print(dict )
3、字典的改

dict['age'] = '20' #有键值对,修改值 dict = {'age':19,'name':'老王','hobby':'girl'} dict1 = {'name':'老王','sex':'male'} dict1.update(dict) #把一个字典内的元素加到另一个字典,相同键不做修改,不同的增加 print(dict1)
4、字典的查

dict = {'age':19,'name':'老王','hobby':'girl'} print(dict['name']) #直接打印对应keys的值,找不到keys会报错 print(dict.get('name')) #直接打印对应keys的值,找不到keys不会报错,显示None print(dict.get('name1','查不到此键')) #有返回值 print(dict.keys()) #查键 print(dict.values()) #查值 print(dict.items()) #查组 for i in dict: #默认打印出键,跟for i in dict.keys()一样 print(i) for i in dict.values(): #打印出值 print(i) for i in dict.items(): #打印出组 print(i)
5、特殊应用

# 根据以下规则 a,b = 1,2 #输出 1 2 print(a,b) a,b = [1,2] #输出 1 2 print(a,b) a,b = [1,2],[3,4] #输出 [1, 2] [3, 4] print(a,b) # 衍生 for k,j in dict.items(): #打印出没有括号没有逗号分开的元素 print(k,j)
6、字典的嵌套

7、案例应用
--->案例1:将大于66的放到第一个keys中,将小于66的放到第二个keys中

li = [11,22,33,44,55,66,77,88,99,90] dict = {'k1': [], 'k2': []} for i in li: if i == 66: continue if i < 66: dict['k1'].append(i) else: dict['k2'].append(i) print(dict)
--->案例2:输出商品列表,用户输入序号,显示用户选中商品
商品li=['手机','电脑','鼠标垫','游艇']
要求:1、页面显示 序号 + 商品名称,如:
1 手机
2 电脑
...
2、用户输入选择的商品序号,然后打印出商品名称
3、如果用户输入的商品序号有误,则提示输入有误,并重新输入
4、用户输入Q或者q,退出程序

li = ['手机', '电脑', '鼠标垫', '游艇'] for i in li: print(li.index(i)+1, i) #使用format增加美观 print('{}\t{}'.format(li.index(i)+1, i)) while 1: num = input('请输入你选择的商品:') if num.upper() == 'Q': break if num.isdigit(): if int(num) <= len(li) and int(num) > 0: print(li[int(num) - 1]) else: print('你的输入有误,请重新输入') else: print('请输入数字')