本文共 2804 字,大约阅读时间需要 9 分钟。
集合是Python中的一个重要数据结构,它具备无序性和唯一性,适用于去重和集合运算等场景。本文将详细介绍集合的基本操作以及文件操作的常用方法。
集合是Python中使用set关键字创建的无序、不可重复的数据结构。集合中的元素必须是可哈希的(如整数、字符串等),但集合本身不可哈希,因此不能作为字典的键。
创建集合非常简单,直接使用set()函数或{}初始化即可。例如:
set1 = {1, 2, 'abc'}set2 = {1, 2, 'asd'}print(type(set1)) # 输出: 集合支持通过add()方法添加元素,或者使用update()方法一次性添加多个元素。update()还可以接受迭代器或字符串等形式。例如:
set1 = {1, 2, 3, 'abc', 'efg'}set1.add('半江') # 输出:{'半江', 1, 2, 3, 'abc', 'efg', 'asd'}set1.update('abc') # 输出:{'h', 1, 2, 3, 'abc', '4', 'd', 'efg'}set1.update([6, 1, 8]) # 输出:{1, 2, 3, 'abc', 6, 8, 'efg'} 集合支持remove()方法删除指定元素(如果元素不存在则报错),pop()方法随机删除一个元素,以及clear()方法清空集合。例如:
set1 = {1, 2, 3, 'abc', 'efg'}set1.remove('abc') # 输出:{1, 2, 3, 'efg'}set1.pop() # 输出:{2, 3, 'efg', 'abc'}set1.clear() # 输出:set()del set1 # 删除集合 集合支持多种集合运算,如交集、并集、差集和对称差集。这些操作可以通过&, |, -, ^等符号或intersection(), union(), difference(), symmetric_difference()方法实现。例如:
set1 = {1, 2, 3, 4, 5}set2 = {4, 5, 6, 7, 8}print(set1 & set2) # 输出:{4, 5}print(set1.intersection(set2)) # 输出:{4, 5} 集合还支持判断子集和超集关系。例如:
set1 = {1, 2, 3}set2 = {1, 2, 3, 4, 5, 6}print(set1 < set2) # 输出:Trueprint(set1.issubset(set2)) # 输出:Trueprint(set2 > set1) # 输出:Trueprint(set2.issuperset(set1)) # 输出:True 使用frozenset()函数可以将集合转换为不可变的frozenset对象。例如:
set1 = {1, 2, 3, 'abc', 'efg'}set2 = frozenset(set1)print(type(set2)) # 输出: 在Python中,使用open()函数可以打开文件。文件路径可以是绝对路径或相对路径。open()的常见模式包括:
r:读取模式(默认)w:写入模式(若文件不存在则创建,内容会覆盖)a:追加模式(内容会追加到文件末尾)rb/text:二进制模式和文本模式(后者默认编码为gbk或utf-8)例如:
f = open('book.txt', 'r', encoding='utf-8') 读取文件的方法有多种:
f.read():读取全部内容。f.read(n):读取n个字符或字节。f.readline():读取一行内容。f.readlines():读取全部内容并存储为列表。例如:
f = open('book.txt', 'r', encoding='utf-8')b = f.read() # 读取全部内容f.close() 写入文件的方法也有多种:
f.write():写入字符串内容。f.writelines():写入多个字符串。f.seek():移动文件指针位置。f.truncate():截断文件。例如:
f = open('book.txt', 'w', encoding='utf-8')f.write('三两半江')f.close() 使用a模式可以将内容追加到文件末尾。例如:
f = open('book.txt', 'a', encoding='utf-8')f.write('abc')f.close() 使用r+模式可以先读取文件内容,再进行写入操作。例如:
f = open('book.txt', 'r+', encoding='utf-8')print(f.read())f.write('abc')f.close() 使用rb模式读取二进制文件,写入时也需要使用二进制形式。例如:
f = open('book.png', 'rb')b = f.read(6)f.close()a = 'sanliang半江'.encode('utf-8')print(b)s = b.decode('utf-8')print(s) file对象提供了丰富的方法,包括:
close():关闭文件。fileno():获取文件描述符。seek()和tell():移动文件指针。truncate():截断文件。flush():刷新缓冲区。如果需要修改文件内容,可以通过以下步骤实现:
例如:
import oswith open('a.txt', 'r', encoding='utf-8') as read_f, open('.a.txt.swap', 'w', encoding='utf-8') as write_f: data = read_f.read() data = data.replace('alex', 'SB') write_f.write(data)os.remove('a.txt')os.rename('.a.txt.swap', 'a.txt') 通过这些方法,可以轻松实现文件的修改和管理。
转载地址:http://jxofk.baihongyu.com/