知识点回顾
列表的增删改查等一些操作方法
增 append insert extend
删 remove pop clear del
改 li[索引] = '被修改的内容' li[切片]:'被修改的内容'
查 for循环
range
元祖:
count()
len()
li.index('元素')
sort(reverse = True)
li.sort()
print(li.sort())
reverse()反转
ps:
join: list ----->str
S.join(iterable)
li = [1,2,3]
s1 = str(li)
split str---->list
知识点
1、字典的增删改查
1.1、增
#普通增加 dic1={ 'age':18, 'name':'liu', 'sex':'男', } dic1['hobby']='youxi'#没有键值对,添加 print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男', 'hobby': 'youxi'} dic1['age']=20#有键值对,则覆盖,这个也可以用做改字典的值 print(dic1)#结果为{'age': 20, 'name': 'liu', 'sex': '男', 'hobby': 'youxi'} #setdefault 操作方法增加 dic1={ 'age':18, 'name':'liu', 'sex':'男', } dic1.setdefault('hobby')#增加一个键值对,但没有值,他会默认添加None print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男', 'hobby': None} dic1.setdefault('hobby','youxi') print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男', 'hobby': 'youxi'} dic1.setdefault('name','youxi')#有键值对不做任何改变,没有就添加 print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男'}
1.2、删
#pop 按键去删 dic1={ 'age':18, 'name':'liu', 'sex':'男', } print(dic1.pop('age'))#有返回值 18 print(dic1)#结果为{'name': 'liu', 'sex': '男'} print(dic1.pop('xiao',None))#在删除一个不知道有没有键的时候,需要在后面加上None #popitem 随机删除,有返回值,返回的数据类型是元祖,元祖里的是键值 dic1={ 'age':18, 'name':'liu', 'sex':'男', } print(dic1.popitem())#结果为('sex', '男') print(dic1)#结果为{'age': 18, 'name': 'liu'} #clear 清空字典 dic1={ 'age':18, 'name':'liu', 'sex':'男', } dic1.clear() print(dic1)#结果为{} #del 可删除键值对,也可删除整个字典 dic1={ 'age':18, 'name':'liu', 'sex':'男', } del dic1['age']#这个没有返回值 print(dic1)#结果为{'name': 'liu', 'sex': '男'} del dic1 print(dic1)#因为没有字典dic1,所以会报错
1.3、改
#update dic1={ 'age':18, 'name':'liu', 'sex':'男', } dic2={ 'age':20, 'hobby':'youxi' } dic2.update(dic1)#把字典dic1的数据弄到字典dic2里,有的键值对的覆盖,没有的就添加 print(dic1)#结果为{'age': 18, 'name': 'liu', 'sex': '男'} print(dic2)#结果为{'age': 18, 'hobby': 'youxi', 'name': 'liu', 'sex': '男'}
1.4、查
dic1={ 'age':18, 'name':'liu', 'sex':'男', } print(dic1.keys())#打印出来的结果是字典dic1的键 #结果为dict_keys(['age', 'name', 'sex']) print(dic1.values())#打印出来的结果是字典dic1的值 #结果为dict_values([18, 'liu', '男']) print(dic1.items())#打印出来的结果是字典dic1的键、值 #结果为dict_items([('age', 18), ('name', 'liu'), ('sex', '男')]) #通过键查找值 print(dic1['name'])#如果字典没有这个键,他就会报错 print(dic1.get('name1',None))#get 也是通过键查找值,如果字典里没有这个键,他会返回你设置的一个数
#PS:一行代码给a,b输入值和实现a,b值的互换(附加一个知识点) a,b=1,2 print(a,b)#结果为1 2 a,b=b,a print(a,b)#结果为2 1
#通过for循环打印键,值和键值对 dic1={ 'age':18, 'name':'liu', 'sex':'男', } for i in dic1.keys(): print(i) print('') for j in dic1.values(): print(j) print('') for x,y in dic1.items(): print(x,y) ''' 上面的结果为: age name sex 18 liu 男 age 18 name liu sex 男 '''
2、字典的嵌套
dic1={ 'name':['liu','xiao','long'], 'hobby':{ 'youxi':'wangzhe', 'yundong':'paobu', }, 'age':12 } #修改age为15 dic1['age']=15 print(dic1) #在name添加一个人名 dic1['name'].append('nb') print(dic1) #把name里的xiao改成大写 dic1['name'][1]=dic1['name'][1].upper() print(dic1) #在hobby里在差一个键值对 dic1['hobby']['lvyou']='xizang' print(dic1)
课后习题
1、字典dic={'k1':'v1','k2':'v2','k3':[11,22,33]}
#1)请循环输出所有的key dic={'k1':'v1','k2':'v2','k3':[11,22,33]} for i in dic.keys(): print(i)
#2)请循环输出所有的value dic={'k1':'v1','k2':'v2','k3':[11,22,33]} for i in dic.values(): print(i)
#3)请循环输出所有的key和value dic={'k1':'v1','k2':'v2','k3':[11,22,33]} for x,y in dic.items(): print(x,y)
#4)请在字典中添加一个键值对,'k4':'v4',输出添加后的字典 #方法一 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k4']='v4' print(dic) #方法二 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic.setdefault('k4','v4') print(dic)
#5)请修改字典中'k1'的对应值为'alex',请输出修改后的字典 # 方法一 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k1']='alex' print(dic) # 方法二 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic1={'k1':'alex'} dic.update(dic1) print(dic)
#6)请在'k3'对应值追加一个元素44,输出修改后的字典 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k3'].append(44) print(dic)
#7)请在'k3'队长硬质的第1个位置插入元素18,输出修改后的字典 dic={'k1':'v1','k2':'v2','k3':[11,22,33]} dic['k3'].insert(0,18) print(dic)
2、li=[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存到第一个key中,小于66的保存到第二个可key中(即:{'k1':大于66的所有值,'k2':小于66的所有值})
li=[11,22,33,44,55,66,77,88,99,90] less=[] greater=[] dic={} for i in li: if i<66: less.append(i) elif i>66: greater.append(i) dic.setdefault('k1',greater) dic.setdefault('k2',less) print(dic)
3、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:
1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑
…
2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
li = ["手机", "电脑", '鼠标垫', '游艇'] print('欢迎光临本店,本店有以下商品。') while 1: print('序号''\t''商品名称') for i in li: print(' {}\t\t {}'.format(li.index(i)+1,i)) x=input('请输入您要购买的商品的序号/输入Q或者q退出>>>').strip() if x.isdigit(): x=int(x) if x>0 and x<=len(li): print('{}'.format(li[x-1])) else: print('您输入的商品序号并不在范围内!') elif x.upper()=='Q': print('感谢您光临本店,欢迎您下次继续光临本店!') break else: print('请输入您要购买的商品的序号,不是商品名称。')