1.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
小提示:按照题意这里的k1和k2对应的value必须能存多个值
A = [11,22,33,44,55,66,77,88,99,90,111] list1 =[] list2= [] for big in A : if big > 66: list1.append(big) #往空列表中添加元素 for small in A: if small <66 : list2.append(small) dict1 ={"k1":list1,'k2':list2} print(dict1)
2.简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
小提示:打印的时候即需要拿到字典的key也需要拿到对应的value
msg_dic={ 'apple':10, 'tesla':100000, 'mac':3000, 'lenovo':30000, 'chicken':10, } goods_name_list = list(msg_dic.keys()) price_list = list(msg_dic.values()) print(goods_name_list) print(price_list) flag = True while flag : goods = input('要什么?>>>') if goods not in (goods_name_list): print('好好输入') else: amount = input ('买多少?>>>') if amount.isdigit(): #判断是否为纯数字 amount = int (amount) order = goods_name_list.index (goods) price = amount*int(price_list[order]) print(goods,amount,price) print("是否继续?是请点Y否请点N") key = input('请输入Y或者N:') if key == 'N': flag = False else: continue else: print('好好输入') print("END")
3.统计s='hello alex alex say hello sb sb'中每个单词的个数
结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
s='hello alex alex say hello sb sb'
dict1 = {}
list1 = s.split(' ') #切分生成单词列表
# print(list1)
set1 = set(list1) #转化成集合去重
# print(set1)
list2 = list(set1) #去重后重新转化成列表
# print(list2)
for i in list2:
dict1[i] = s.count(i)
print(dict1)
4.关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'} # 1. 求出即报名python又报名linux课程的学员名字集合 print(pythons & linuxs) # 2. 求出所有报名的学生名字集合 print(pythons | linuxs) # 3. 求出只报名python课程的学员名字 print(pythons - linuxs) # 4. 求出没有同时这两门课程的学员名字集合 print(pythons ^ linuxs)
5. 对列表l=['a','b',1,'a','a']内的元素完成去重得到新列表.
拔高:如果想去重并且想保持列表原来的顺序该如何做?
l=['a','b',1,'a','a'] l.reverse() #反转列表方便从后往前删除,保持前面需要保留的字符顺序不被破坏 for i in l: if l.count(i) >1: l.remove(i) #从列表中移除 l.reverse() print(l)
6.对如下列表中的元素去重(),得到新列表,且新列表一定要保持列表原来的顺序
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'},
]
小提示:去重不一定非要用集合
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'}, ] l.reverse() for i in l: if l.count(i) >1: l.remove(i) l.reverse() print(l)