集合及总结

一、作业解答

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:字符串,列表,元组,字典,集合
#解压:字符串,列表,元组,字典,集合

 

posted @ 2017-07-21 15:26  A-a  阅读(330)  评论(0)    收藏  举报