English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python 基础教程

Python 流程控制

الوظائف في Python

أنواع البيانات في Python

Python 文件操作

Python 对象和类

Python 日期和时间

Python 高级知识

Python 参考手册

Python zip() 使用方法及示例

وظائف مدمجة بايثون

zip()函数接受可迭代项(可以为零或更多),将它们聚合到一个元组中,然后将其返回。

zip()函数的语法为:

zip(*iterables)

zip()参数

参数描述
可迭代项可以是内置的可迭代项(例如:列表,字符串,字典)或用户定义的可迭代项

推荐阅读: Python迭代器,__iter__和__next__

zip()返回值

zip() 函数基于可迭代对象返回元组的迭代器。

  • 如果我们不传递任何参数,则zip()返回一个空的迭代器

  • 如果传递了单个可迭代对象,则zip()返回元组的迭代器,每个元组只有一个元素。

  • 如果传递了多个可迭代对象,则zip()返回一个元组的迭代器,其中每个元组都具有来自所有可迭代对象的元素。
    假设有两个可迭代的变量传递给zip();一个包含三个元素的可迭代对象,另一个包含五个元素的可迭代对象。然后,返回的迭代器将包含三个元组。这是因为迭代器在最短的可迭代对象耗尽时停止。

示例1:Python zip()

number_list = [1, 2, 3]
str_list = ['one', 'two', 'three']
# 没有可迭代对象参数
result = zip()
# 将迭代器转换为列表
result_list = list(result)
print(result_list)
# 两个可迭代对象
result = zip(number_list, str_list)
#تحويل الماكينة إلى مجموعة
result_set = set(result)
print(result_set)

نتيجة الإخراج

[]
{(2, 'two'), (3, 'three'), (1, 'one')}

مثال2: عناصر متعددة من المكونات القابلة للتدفق

numbersList = [1, 2, 3]
str_list = ['one', 'two']
numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR')
#انتبه، حجم numbersList و numbers_tuple مختلف
result = zip(numbersList, numbers_tuple)
# تحويل إلى مجموعة set
result_set = set(result)
print(result_set)
result = zip(numbersList, str_list, numbers_tuple)
# تحويل إلى مجموعة set
result_set = set(result)
print(result_set)

نتيجة الإخراج

{(2, 'TWO'), (3, 'THREE'), (1, 'ONE')}
{(2, 'two', 'TWO'), (1, 'one', 'ONE')}

يمكن استخدام عميل * مع zip() لفك ضغط القوائم.

zip(*zippedList)

مثال3: استخدام zip() لفك الضغط للقيم

coordinate = ['x', 'y', 'z']
value = [3, 4, 5]
result = zip(coordinate, value)
result_list = list(result)
print(result_list)
c, v =  zip(*result_list)
print('c =', c)
print('v =', v)

نتيجة الإخراج

[('x', 3), ('y', 4), ('z', 5)]
c = ('x', 'y', 'z')
v = (3, 4, 5)

وظائف مدمجة بايثون