作业05
1.实现打印商品的详细信息,用户输入商品名和购买个数,则将商品名、价格、购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
msg_dic={ 'apple':10, 'tesla':100000, 'mac':3000, 'lenovo':30000, 'chicken':10, }
good_l=[] tag=True while tag: for key,item in msg_dic.items(): 将字典内的键值通过for循环依次赋值给name与price print('name = {name},price = {price}'.format(name=key,price=item)) choice=input('请输入你需要的商品编号: '.strip()) if not choice or choice not in msg_dic: print('输入有误,请重新输入') continue count=input('请选择你需要的商品数量:'.strip()) if not count.isdigit: print('商品不存在,请重新输入') continue good_l.append((choice,msg_dic[choice],count)) 此处msg_dic[choice]是通过输入key得到的字典里key的值 print(good_l)
2.有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于66的的值保存至字典的第一个key中,将所有大于66的值保存至字典的第二个key中。
l1=[11,22,33,44,55,66,77,88,99,90] d1={'key1':[],'key2':[]} 此处应创建一个新的字典先定义key1与key2以便放入相应的值 for i in l1: if i < 66: d1['key1'].append(i) elif i > 66: d1['key2'].append(i) print(d1)
3.统计s='hello alex alex say hello sb sb'中每个单词的数量。
s='hello alex alex say hello sb sb' d1={} words=s.split() print(words) for i in words: d1.setdefault(i,words.count(i)) setdefault的作用是将用户在其单词后传入的两个参数以键值对的方式存入新的字典,若该键值对已在字典内, print(d1) 那么setdefault什么也不会做,只会返回该键值对的原值。
4.有如下两个集合,Pythons是报名Python课程的学员名字集合,Linuxs是报名Linux课程的学员名字集合。
⑴求出即报名Python又报名Linux课程的学员名字集合
⑵求出所有报名的学生名字集合
⑶求出只报名Python课程学员的名字
⑷求出没有同时学这两门课程的学员名字
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'} 1. res=set(pythons & linuxs) print(res) 2. res=set(pythons | linuxs) print(res) 3. res=set(pythons - linuxs) print(res) 4. res=set(pythons ^ linuxs) print(res)
5.去重
1.有列表L=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表且新列表无需保持列表原来的顺序
L1=list(set(L)) print(L1)
2.在上题的基础上,保留列表原来的顺序。
L=['a','b',1,'a','a'] L1=[] for i in L: if i not in L1: L1.append(i) print(L1)
3.去除文件中重复的行,肯定要保持文件内容的顺序不变
4.有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序。
l=[ {'name':'egon','age':18,'sex':'male'}, {'name':'alex','age':73,'sex':'male'}, {'name':'egon','age':20,'sex':'female'}, {'name':'egon','age':18,'sex':'male'}, {'name':'egon','age':18,'sex':'male'}, ] l1=[] for dic in l: if dic not in l1: l1.append(dic) print(l1)