在Python中,`zip`函数用于将多个可迭代对象(如列表、元组等)打包成一个元组的迭代器。下面是一些基本用法:
创建ZIP文件
import zipfile
创建一个新的ZIP文件
with zipfile.ZipFile('my_files.zip', 'w') as zip_file:
添加单个文件
zip_file.write('test.txt')
添加多个文件
files_to_zip = ['data.csv', 'image.png', 'config.json']
for file in files_to_zip:
zip_file.write(file)
解压ZIP文件
解压到当前目录
with zipfile.ZipFile('my_files.zip', 'r') as zip_file:
zip_file.extractall()
解压到指定目录
with zipfile.ZipFile('my_files.zip', 'r') as zip_file:
zip_file.extractall('extracted_files')
使用`zip`函数
合并多个列表/元组
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
for item in zipped:
print(item)
输出:
(1, 'a')
(2, 'b')
(3, 'c')
遍历多个可迭代对象
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = ['!', '@', '']
for x, y, z in zip(list1, list2, list3):
print(x, y, z)
输出:
1 a !
2 b @
3 c
将两个列表合并为一个字典
list1 = ['name', 'age']
list2 = ['John', 25]
my_dict = dict(zip(list1, list2))
print(my_dict)
输出:
{'name': 'John', 'age': 25}
注意事项
当传入的可迭代对象长度不一致时,`zip`函数会以最短的可迭代对象长度为准进行打包,超出部分将被忽略。
使用`*`号操作符可以将元组解压为列表。
`zip`函数返回的是一个迭代器,如果需要列表形式,可以使用`list()`函数进行转换