#!/usr/bin/env python
# ```python
# 1.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中
# 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
# 小提示:按照题意这里的k1和k2对应的value必须能存多个值
#
# l = [11,22,33,44,55,66,77,88,99,90]
# k = {'k1':[], 'k2':[]}
# for i in l:
# if i < 66:
# k['k1'].append(i)
# elif i == 66:
# continue
# else:
# k['k2'].append(i)
# print(k)
# 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_l = []
# while True:
# for key, item in msg_dic.items():
# print('name:{name} price:{price}'.format(price = item,name = key))
# #实现打印商品详细信息
# choice = input('商品>>: ').strip()
# #用户选择购买商品,strip格式化输入
# if not choice or choice not in msg_dic:
# print('输入不正确,请重新输入')
# continue
#
# #商品输入正确,不正确重新输入
# count = input('购买数量>>: ').strip()
# #输入商品的数量
# if not count.isdigit():
# print('输入不正确,请重新输入')
# continue
# #判断是不是数字
# goods_l.append((choice, msg_dic[choice],count))
# #追加到列表gools_l购物车里
# print(goods_l)
# 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'
s1={}
s2=s.split()
s3=set(s2)
for i in s3:
s1[i]=s.count(i)
print(s1)
# 4.关系运算
# 有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
# pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
# linuxs={'wupeiqi','oldboy','gangdan'}
# 1. 求出即报名python又报名linux课程的学员名字集合
# 2. 求出所有报名的学生名字集合
# 3. 求出只报名python课程的学员名字
# 4. 求出没有同时这两门课程的学员名字集合
#
pythons = {'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs = {'wupeiqi','oldboy','gangdan'}
print(pythons & linuxs)
print(pythons | linuxs)
print(pythons - linuxs)
print(pythons ^ linuxs)
# 5. 对列表l=['a','b',1,'a','a']内的元素完成去重得到新列表.
# 拔高:如果想去重并且想保持列表原来的顺序该如何做?
#
l = ['a','b',1,'a','a']
l1 = []
for i in l:
if i not in l1:
l1.append(i)
print(l1)
# 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'},
]
s = set()
l1 = []
for item in l:
val = (item['name'], item['age'], item['sex'])
if val not in s:
s.add(val)
l1.append(item)
print(l1)