Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對(duì)象和類

Python 日期和時(shí)間

Python 高級(jí)知識(shí)

Python 參考手冊(cè)

Python zip() 使用方法及示例

Python 內(nèi)置函數(shù)

zip()函數(shù)接受可迭代項(xiàng)(可以為零或更多),將它們聚合到一個(gè)元組中,然后將其返回。

zip()函數(shù)的語(yǔ)法為:

zip(*iterables)

zip()參數(shù)

參數(shù)描述
iterables可以是內(nèi)置的可迭代項(xiàng)(例如:列表,字符串,字典)或用戶定義的可迭代項(xiàng)

推薦閱讀: Python迭代器,__ iter__和__next__

zip()返回值

zip() 函數(shù)基于可迭代對(duì)象返回元組的迭代器。

  • 如果我們不傳遞任何參數(shù),則zip()返回一個(gè)空的迭代器

  • 如果傳遞了單個(gè)iterable,則zip()返回元組的迭代器,每個(gè)元組只有一個(gè)元素。

  • 如果傳遞了多個(gè)Iterable,則zip()返回一個(gè)元組的迭代器,其中每個(gè)元組都具有來(lái)自所有Iterables的元素。
    假設(shè)有兩個(gè)可迭代的變量傳遞給zip();一個(gè)包含三個(gè)元素的可迭代對(duì)象,另一個(gè)包含五個(gè)元素的可迭代對(duì)象。然后,返回的迭代器將包含三個(gè)元組。這是因?yàn)榈髟谧疃痰目傻亢谋M時(shí)停止。

示例1:Python zip()

number_list = [1, 2, 3]
str_list = ['one', 'two', 'three']

# 沒(méi)有iterable參數(shù)
result = zip()

# 將迭代器轉(zhuǎn)換為列表
result_list = list(result)
print(result_list)

# 兩個(gè)iterable
result = zip(number_list, str_list)

# 將迭代器轉(zhuǎn)換為set
result_set = set(result)
print(result_set)

輸出結(jié)果

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

示例2:不同數(shù)量的可迭代元素

numbersList = [1, 2, 3]
str_list = ['one', 'two']
numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR')

#注意,numbersList和numbers_tuple的大小不同
result = zip(numbersList, numbers_tuple)

# 轉(zhuǎn)換為set集合
result_set = set(result)
print(result_set)

result = zip(numbersList, str_list, numbers_tuple)

# 轉(zhuǎn)換為set集合
result_set = set(result)
print(result_set)

輸出結(jié)果

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

運(yùn)算符*可以與zip()一起使用來(lái)解壓縮列表。

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)

輸出結(jié)果

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

Python 內(nèi)置函數(shù)

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清