集合类型与字典类型的作业

1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],
将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

# 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}


c = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
a = {'key1': [], 'key2': []}
for i in c:
if i > 66:
a['key1'].append(i)
else:
a['key2'].append(i)
print(a)

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'
d = {}
i = s.split()

for word in i:
d.setdefault(word, i.count(word))
print(d)
# 一.关系运算
#   有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
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)
# 1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序
l = ['a', 'b', 1, 'a', 'a']
res = list(set(l))
print(res)
# 2.在上题的基础上,保存列表原来的顺序
l = ['a', 'b', 1, 'a', 'a']
res=[]
for word in l:
if word not in res:
res.append(word)
print(res)
# 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'},
]
res = []
for i in l:
if i not in res:
res.append(i)
print(res)
原文地址:https://www.cnblogs.com/xiamenghan/p/9671996.html