Day3:函数、递归、内置函数

  • 集合
    list_1=[1,4,5,7,3,6,7,9]
    list_2=[2,6,0,66,22,8,4]
    • 去重 list_1=set(list_1) #type为集合
    • 关系测试
      • 交集
        list_1=set(list_1)
        list_2=set(list_2)
        print(list_1.intersection(list_2))  或者  print(list_1 & list_2)
      • 并集
        list_1=set(list_1)
        list_2=set(list_2)
        print(list_1.union(list_2))  或者  print( list_1 | list_2) 
      • 差集
        list_1=set(list_1)
        list_2=set(list_2)
        print(list_1.difference(list_2))  或者 print(list_1 -  list_2)
      • 子集
        list_1=set(list_1)
        list_2=set(list_2)
        print(list_1.issubset(list_2)) #判断1是否为2的子集
        print(list_1.issuperset(list_2)) #判断1是否为2的父集
      • 对称差集 
        print(list_1.symmetric_difference(list_2))  或者 print( list_1 ^ list_2)  #并集中去掉交集
      • 检查是否存在交集
        print(list_2.isdisjoint(list_1)) #没有为True,否则为False
    • 修改
      • 添加 list_1.add(999) 或者 list_1.update([111,222,333])
      • 删除 list_1.remove(1) 或者 list_1.discard(1) #安全删除,discard不会报错

  • 文件操作
    • 打开文件
      f=open("yesterday") #文件句柄
    • 读取
      • 全部读取
        f=open("yesterday",'r')
        data=f.read()
      • 读取一行
        data=f.readline()
      • 按行读成列表
        data=f.readlines()
      • 每次只读一行进内存,且内存中只保存一行
        for line in f:
            print(line)
    • 写入
      f=open("yesterday",'w')
      f.write("我爱北京天安门")
    • 追加
      f=open("yesterday",'a')
      f.write("我爱北京天安门")
    • 打开文件之后,指针位置
      f=open("yesterday",'a')
      print(f.tell())
    • 读取、修改指针位置
      f.tell()   f.seek(0) #将指针回到文件开始
    • 打印文件编码
      print(f.encoding)
    • 内存中的文件操作写入到文件上
      f.flush()
    • 截断文件
      f=open("yesterday",'a')
      f.truncate(10)   #从文件头开始截取,移动指针函数失效
    • 以读追加方式打开文件
      f=open("yesterday","r+")
    • 以写追加的方式打开文件
      f=open("yesterday","w+")
    • 以追加读的方式打开文件
      f=open("yesterday","a+")
    • 读取二进制文件
      f=open("yesterday",'rb')  #网络传输时经常用到
    • 写二进制文件
      f=open("yesterday",'wb')
      f.write("hello binary\n".encode())
      f.close()
  • 打印进度条
    import sys,time
    for i in range(20):
        sys.stdout.write("#")  #连续打印不换行
        sys.stdout.flush()  #将内存中的改变立马展示出来,和f.flush()同样的道理
        time.sleep(0.1)

猜你喜欢

转载自www.cnblogs.com/JYLCSS/p/10859560.html
今日推荐