zip(*iterables) 函数
本文最后更新于40 天前,其中的信息可能已经过时,如有错误请发送邮件到zhangweihao22@outlook.com

将多个可迭代对象依次打包为元组,并返回该元组组成的迭代器

AI explanation

基本功能 zip() 函数用于将多个可迭代对象(如列表、元组、字符串等)中的元素打包成一个个元组,然后返回由这些元组组成的迭代器。*iterables 表示可以传入多个可迭代对象作为参数。 语法

zip(*iterables)
  • *iterables:表示一个或多个可迭代对象,如列表、元组、字符串等。 示例代码及解释 示例 1:简单的打包操作
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)

# 将迭代器转换为列表,方便查看结果
result = list(zipped)
print(result)

在这个例子中,zip(list1, list2)list1list2 中的元素一一对应地打包成元组。最终输出为 [(1, 'a'), (2, 'b'), (3, 'c')]

示例 2:处理多个可迭代对象

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]
zipped = zip(list1, list2, list3)

result = list(zipped)
print(result)

这里 zip() 函数接收了三个列表作为参数,将它们的元素对应打包成元组。输出结果为 [(1, 'a', True), (2, 'b', False), (3, 'c', True)]

示例 3:处理不同长度的可迭代对象

list1 = [1, 2, 3]
list2 = ['a', 'b']
zipped = zip(list1, list2)

result = list(zipped)
print(result)

当可迭代对象的长度不同时,zip() 函数会以最短的可迭代对象的长度为准进行打包。在这个例子中,list2 长度为 2,所以最终结果只包含两个元组:[(1, 'a'), (2, 'b')]

解包操作

zip(*iterables) 中的 * 操作符还可以用于解包操作。例如:

zipped = [(1, 'a'), (2, 'b'), (3, 'c')]
unzipped = zip(*zipped)

list1, list2 = map(list, unzipped)
print(list1)
print(list2)

这里 zip(*zipped)zipped 进行了解包操作,将其还原为原来的两个列表。最终输出为:

[1, 2, 3]
['a', 'b', 'c']

注意事项

  • zip() 返回的是一个迭代器,如果你需要多次使用结果,建议将其转换为列表或其他数据结构。
  • 当可迭代对象长度不同时,zip() 会以最短的可迭代对象的长度为准。如果你需要处理不同长度的可迭代对象并包含所有元素,可以使用 itertools.zip_longest() 函数。
文末附加内容

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
Copyright 2025-2025 @ Ziyang
Running Time days H M S