day06作业

简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入  

msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
} 
 1 good_l = []
 2 while True:
 3     for key,item in msg_dic.items():
 4         print('name {name} price {price}'.format(price = item,name = key))
 5     choice = input('请输入想要的商品:').strip()
 6     if not choice or choice not in msg_dic:
 7         print('请从新输入商品名')
 8         continue
 9     while True:
10         count = input('请输入数量:').strip()
11         if not count.isdigit():
12             continue
13         else:
14             msg= {
15                 'good_info':(choice,msg_dic[choice]),
16                 'count':count
17             }
18             good_l.append(msg)
19             break
20     print(good_l)
View Code
有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
l = [11,22,33,44,55,66,77,88,99]
d1 = {'k1':[],'k2':[]}

print(d1 == l1)
for i in l:
   if i > 66:
       # print(i)
       d1['k1'].append(i)
   elif i<66:
       d1['k2'].append(i)
print(d1)

#{'k1': [77, 88, 99], 'k2': [11, 22, 33, 44, 55]}
2 统计s='hello alex alex say hello sb sb'中每个单词的个数

结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2
s='hello alex alex say hello sb sb'
l=s.split(' ')
print(l)
d={}
for item in l:
    d.setdefault(item,l.count(item))
print(d)

#['hello', 'alex', 'alex', 'say', 'hello', 'sb', 'sb']
#{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
 一.关系运算
  有如下两个集合,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)

#{'gangdan', 'wupeiqi'}
#{'yuanhao', 'oldboy', 'wupeiqi', 'egon', 'alex', 'biubiu', 'gangdan'}
#{'yuanhao', 'egon', 'biubiu', 'alex'}
#{'oldboy', 'yuanhao', 'egon', 'alex', 'biubiu'}
二.去重

   1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序
l=['a','b',1,'a','a']
print(list(set(l)))

#[1, 'a', 'b']

 

   2.在上题的基础上,保存列表原来的顺序
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'},
]  
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'},
]
dic = []
for item in l:
    if item not in dic:
        dic.append(item)
print(dic)

#[{'name': 'egon', 'age': 18, 'sex': 'male'}, {'name': 'alex', 'age': 73, 'sex': 'male'}, {'name': 'egon', 'age': 20, 'sex': 'female'}]

 

 

 
原文地址:https://www.cnblogs.com/msj513/p/9668893.html