集合及总结
一、作业解答
1.简单购物车
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
__author__ = 'Administrator' msg_dic={ 'apple':10, 'tesla':100000, 'mac':3000, 'lenovo':30000, 'chicken':10, } gwc=[] while True: for good in msg_dic: print("name:{name} price:{price}".format(name=good,price=msg_dic[good])) name=input("请输入商品名称:").strip() if len(name)==0 or name not in msg_dic: print("输入名称有误") else: while True: count=input("请输入要购买商品的个数:").strip() if count.isdigit(): gwc.append((name,msg_dic[name],count)) print(gwc) break else: print("商品数量输入有误,不能为空并且只能为数字") continue
二、9*9乘法表
for i in range(1,10): for j in range(1,i+1): print("%s*%s=%s"%(i,j,i*j),end=" ") print("")
三、字典联系
1.有如下值集合 [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,90] d={"k1":[],"k2":[]} for i in l: if i>66: d["k1"].append(i) else: d["k2"].append(i) print(d)
2 统计s='hello alex alex say hello sb sb'中每个单词的个数 结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}
__author__ = 'Administrator' #方法一 ''' s='hello alex alex say hello sb sb' l=s.split() d={} for i in l: if i not in d: d[i]=1 else: d[i]+=1 print(d) ''' #方法二: ''' s='hello alex alex say hello sb sb' l=s.split() d={} for i in l: d[i]=s.count(i) print(d) ''' #方法三 ''' setdefault的功能: 1.key存在则不赋值,key不存则设置默认值 2.key存在则返回已经存在的值,key不存在,返回的是要设置的默认值 d={} print(d.setdefault('a',1)) #返回1 d={'a':2222} print(d.setdefault('a',1)) #返回2222 ''' ''' s='hello alex alex say hello sb sb' l=s.split() d={} for i in l: d.setdefault(i,s.count(i)) print(d) ''' #方法四 s='hello alex alex say hello sb sb' print({key:s.count(key) for key in s.split()})
四、集合
pythons=['alex','egon','yuanhao','wupeiqi','gangdan','biubiu'] linuxs=['wupeiqi','oldboy','gangdan'] #求二者共同的部分:求即报名python又报名linux的学生 # l=[] # for item in pythons: # if item in linuxs: # l.append(item) # print(l) #求只报名python,没有报名linux的学生 # l=[] # for item in pythons: # if item not in linuxs: # l.append(item) # print(l) # 知识点回顾 # 可变类型是不可hash类型 # 不可变类型是可hash类型 # d={[1,2,3]:'egon',} #定义集合 #集合:可以包含多个元素,用逗号分割, #集合的元素遵循三个原则: #1:每个元素必须是不可变类型 #2:没有重复的元素 #3:无序 # s={1,2,2,'eaaa',(1,2,3)} #s=set({1, 2, (1, 2, 3), 'eaaa'}) # print(s,type(s)) # union(), | 并集:老男孩所以报名的学生名字集合 # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} # linuxs={'wupeiqi','oldboy','gangdan'} # print(pythons|linuxs) # print(pythons.union(linuxs)) #&交集:求二者共同的部分:求即报名python又报名linux的学生 # pythons=['alex','egon','yuanhao','wupeiqi','gangdan','biubiu'] # linuxs=['wupeiqi','oldboy','gangdan'] # print(pythons&linuxs) # -差集:求只报名python,没有报名linux的学生 # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} # linuxs={'wupeiqi','oldboy','gangdan'} # print(pythons-linuxs) # print(pythons.difference(linuxs)) # print(linuxs.difference(pythons)) # ^对称差集: 没有同时报名python和linux课程的学生名字集合 # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} # linuxs={'wupeiqi','oldboy','gangdan'} # print(pythons^linuxs) # print(pythons.symmetric_difference(linuxs)) # == set1={1,2,3} set2={1,2,3} # print(set1 == set2) # >,>= ,<,<= 父集,子集 set1={1,2,3,4,5} set2={1,2,3,4} # print(set1 >= set2) # print(set1.issuperset(set2)) # # print(set2 <= set1) # print(set2.issubset(set1)) #掌握 linuxs={'wupeiqi','oldboy','gangdan'} # linuxs.add('asb') #set类型的集合是可变类型 # linuxs.add([1,2,3]) #报错,只能添加不可变类型 # print(linuxs) # res=linuxs.pop() #不用指定参数,随机删除,并且会有返回值 # print(res) # res=linuxs.remove('oldboy') #指定元素删除,元素不存在则报错,单纯的删除,没有返回值, # # print(linuxs) # print(res) # # res= linuxs.discard('oldboy1111111') #指定元素删除,元素不存在不报错,单纯的删除,没有返回值, # # print(linuxs) # print(res) #了解 linuxs={'wupeiqi','oldboy','gangdan'} new_set={'wupeiqi','alex_SB'} # linuxs.update(new_set) # print(linuxs) # new_set.update(linuxs) # print(new_set) # linuxs.clear() # linuxs.copy() set1={1,2,3} set2={4,1,2} # print(set1 - set2) # print(set1.difference(set2)) # set1=set1-set2 # print(set1) # set1=set1.difference(set2) # print(set1) # set1.difference_update(set2) # print(set1) # msg='hello' # msg=[1,2,'egon','egon'] # msg=[1,2,'egon','egon',[1,2],[1,2]] # s=set(msg) #{1,2,'egon','egon',[1,2],[1,2]} # print(s) #for # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} # for item in pythons: # print(item) #解压 # # a,*_={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} # print(a) #in:字符串,列表,元组,字典,集合 #for:字符串,列表,元组,字典,集合 #解压:字符串,列表,元组,字典,集合

浙公网安备 33010602011771号