集合练习题

一.关系运算
  有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
  pythons={‘alex’,‘egon’,‘yuanhao’,‘wupeiqi’,‘gangdan’,‘biubiu’}
  linuxs={‘wupeiqi’,‘oldboy’,‘gangdan’}

  1. 求出即报名python又报名linux课程的学员名字集合
print(pythons & linuxs)
  1. 求出所有报名的学生名字集合
print(pythons | linuxs)
  1. 求出只报名python课程的学员名字
print(pythons - linuxs)
  1. 求出没有同时这两门课程的学员名字集合
print(pythons ^ linuxs)

二.去重

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

2.在上题的基础上,保存列表原来的顺序

new_l1 = []
for i in l:
    if i not in new_l1:
        new_l1.append(i)
print(new_l1)

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'},
]

new_l=[]
for dic in l:
    if dic not in new_l:
        new_l.append(dic)
print(new_l)

你可能感兴趣的:(小白上路啦~)