zoukankan      html  css  js  c++  java
  • python基础学习-day10==课后作业练习(集合)

    # 作业:
    #  一.关系运算
    #   有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
    #   pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    #   linuxs={'wupeiqi','oldboy','gangdan'}
    #   1. 求出即报名python又报名linux课程的学员名字集合
    #   2. 求出所有报名的学生名字集合
    #   3. 求出只报名python课程的学员名字
    #   4. 求出没有同时这两门课程的学员名字集合
    import os# 第二大题第三小题文件操作,对文件重命名需要这个头文件

    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']
    print(set(l))
    # 2.在上题的基础上,保存列表原来的顺序
    #
    #去重,并保持原来的顺序
    #方法一:不用集合
    l=[1,'a','b',1,'a']

    l1=[]
    for i in l:
    if i not in l1:
    l1.append(i)
    print(l1)
    #方法二:借助集合
    l1=[]
    s=set()
    for i in l:
    if i not in s:
    s.add(i)
    l1.append(i)
    print(l1)

    # 3.去除文件中重复的行,肯定要保持文件内容的顺序不变
    #通过文件将文件中的每一行数据读取出来
    new_list=[]
    with open('db.txt','r',encoding='utf-8') as f:
    for line in f:
    #print(line)
    #通过new_list给文件中的数据去重,并且保证原来的位置不变
    if line not in new_list:
    new_list.append(line)
    print(new_list)
    #将去重后的数据,重新写入到当前的db.txt文件中
    with open('db.txt','w',encoding='utf-8') as f:
    for line in new_list:
    f.write(line)

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

    list=[]
    for dict in l:
    if dict not in list:
    list.append(dict)

    print(list)
  • 相关阅读:
    SQL的四种连接-左外连接、右外连接、内连接、全连接
    查看Linux下端口占用情况的命令
    linux的命令(1)
    xsheell的下载安装初级使用
    日交易,根据权重分配流量的算法,根据权重和交易笔数
    根据权重挑选通道的简单算法
    Java中的String与常量池
    JAVA虚拟机内存分配与回收机制
    JVM 内部运行线程介绍
    AspectJ切入点语法详解
  • 原文地址:https://www.cnblogs.com/dingbei/p/12488310.html
Copyright © 2011-2022 走看看