十、集合和文件

1. 集合

确定的无序的一组数据就是集合。

  • 集合中的值不会重复(唯一)
  • 集合中的元素没有任何顺序
  • 集合中可以使用整数,浮点数,布尔值,复数,字符串,元组,冰冻集合

(1)集合的内置函数

add()

向集合中添加一个元素
格式:集合.add(值)
返回值:None
注意:直接改变原有集合
# s.add(7)
# print(s)

pop()

随机删除集合中的一个元素
格式:集合.pop()
返回值:删除的那个元素
注意:直接改变原有集合
# s.pop()
# print(s)

remove()

删除集合中的某个元素
格式:集合.remove(值)
返回值:None
注意:直接改变原有集合
# s.remove(7)
# print(s)

discard()

删除集合中的某个元素
格式:集合.dicard(值)
返回值:None
注意:直接改变原有集合

remove移除非成员值会报错,discard移除非成员值,啥也不错!

# s.discard(9)
# print(s)

clear()

清空集合
格式:集合.clear()
返回值:None
注意:直接改变原有集合
# s.clear()
# print(s)

copy()

复制集合
格式:集合.copy()
返回值:复制的一份集合
# s2 = s.copy()
# print(s2)

difference()

差集
格式:集合1.difference(集合2)
返回值:集合
操作:获取存在于集合1但是不存在与集合2中的数据的集合
# result = x.difference(y)
# result1 = y.difference(x)
# print(result)
# print(result1)

difference_update()

差集 更新
格式:集合1.difference(集合2)
返回值:无 直接将结果赋值给集合1
操作:获取存在于集合1但是不存在与集合2中的数据的集合
# x.difference_update(y)
# print(x)

intersection()

交集
格式:集合1.intersection(集合2)
返回值:集合
操作:获取即存在于集合1又存在于集合2中的数据组成的集合
# result = x.intersection(y)
# print(result)

intersection_update()

交集更新
格式:集合1.intersection_update(集合2)
返回值:None  直接将结果赋值给集合1
操作:获取即存在于集合1又存在于集合2中的数据组成的集合

union()

并集
格式:集合1.union(集合2)
返回值:集合
操作:将集合1和集合2中所有数据新建一个集合(去重)
# result = x.union(y)
# print(result)

update()

并集更新
格式:集合1.update(集合2)
返回值:无   直接将结果赋值给集合1
操作:将集合1和集合2中所有数据新建一个集合(去重)

issuperset()

检测一个集合是不是另外一个集合的超集
格式:集合1.issuperset(集合2)
返回值:布尔值
# result = y.issuperset(z)
# print(result)

issubset()

检测一个集合是不是另外一个集合的字节
格式:集合1.issubset(集合2)
返回值:布尔值
# result = z.issubset(y)
# print(result)

isdisjoint()

检测2个集合是否不相交
格式:集合1.isdisjoint(集合)
返回值:布尔值

symmetric_difference()

对称差集操作
格式:集合1.symmetric_difference(集合2)
返回值:集合
操作:将集合1和集合2不相交的部分取出组成的新的集合
# result = x.symmetric_difference(y)
# result1 = y.symmetric_difference(x)
# print(result)
# print(result1)

symmetric_difference_update()

对称差集更新操作
格式:集合1.symmetric_difference(集合2)
返回值:None 直接将结果赋值给集合1
操作:将集合1和集合2不相交的部分取出组成的新的集合

(2)冰冻集合

创建空的冰冻集合

变量 = frozenset()

创建多个元素的集合

变量 = frozenset(容器类数据)
s = frozenset()
print(type(s))

s1 = frozenset([1,2,3,6,54])
print(s1)

2. 文件操作

(1)open()语法

功能:打开或者创建一个文件
格式:open('文件路径','打开模式')
返回值:文件io对象

语法 file_object = open(path,method)

  • path 文件的路径和名称 格式为字符串

  • method 文件打开的权限 格式为字符串

    • w 写权限 如果没有这个文件 自动创建一个 如果有这个文件 那么将会覆盖掉之前的内容。

      • f = open("user.txt","w",encoding="utf-8")
        #write()  向对应的文件中写入文件
        f.write("早诊断、早隔离、早治疗")
        #close()  关闭文件
        f.close()
        
    • a 追加写 如果没有这个文件 自动创建一个 如果有这个文件 那么就在文件末尾进行追加

      • f = open("user.txt","a",encoding="utf-8")
        f.write("钟南山说:“输入病例的感染性很强,一点都不能放松")
        # 写操作   是将要写入的内容先写到缓冲区
            # 当程序运行结束        自动写入
            # 当文件关闭            自动写入
            # 当缓冲区被写满        自动写入
            # flush()刷新缓冲区     立即写入
        f.flush()
        while True:
            pass
        
    • r 读操作

      • f = open("user.txt","r",encoding="utf-8")
        # read() 读取全文
        # content = f.read()
        # print(content)
        
        #readline()  读一行
        contents = f.readline()
        print(contents)
        
        #readlines() 以行为单位读取全文
        result = f.readlines()
        print(result)
        f.close()
        
    • wb 二进制写入

      • f = open("user.txt","wb")
        str1 = "大金链子小手表"
        # encode() 对数据进行指定格式的编码
        # f.write("大金链子小手表".encode("utf-8"))
        f.write(str1.encode("utf-8"))
        f.close()
        
    • rb二进制读取

      • f = open("user.txt","rb")
        # decode() 对数据进行指定格式的解码
        content = f.read().decode("utf-8")
        print(content)
        

(2)with open()语法

with open("user.txt","a+") as f:
    #此处的文件对象f 是一个局部变量
    # tell() 告诉我们当前光标在什么位置
    content = f.read()
    print(f.tell())
    f.seek(10,0)
    print(f.tell())
    result = f.readline()
    #seek(offset,whence)  whence代表参考位置  offset代表字节数
        # whence = 0    以开头为参考位置
        # whence = 1    以当前为参考位置  (3.x取消了此项功能)
        # whence = 2    以结尾为参考位置  (3.x取消了此项功能)
    print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值