成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python中zip()函數(shù)的解析及其簡單示例

譯文 精選
開發(fā) 前端
在Python編程領(lǐng)域,zip() 函數(shù)以其簡潔性而著稱,它能夠?qū)⒍鄠€(gè)列表或其他可迭代對象(如元組、集合乃至字符串)巧妙地合并成一個(gè)元組構(gòu)成的可迭代對象。想象一下,它就像夾克上的拉鏈,巧妙地將兩側(cè)緊密連接在一起。

譯者 | 劉濤

審校 | 重樓

在Python編程領(lǐng)域,zip() 函數(shù)以其簡潔性而著稱,它能夠?qū)⒍鄠€(gè)列表或其他可迭代對象(如元組、集合乃至字符串)巧妙地合并成一個(gè)元組構(gòu)成的可迭代對象。想象一下,它就像夾克上的拉鏈,巧妙地將兩側(cè)緊密連接在一起。

在本指南中,我們將通過簡單實(shí)用的示例深入探討 zip() 函數(shù)的來龍去脈,幫助你理解如何有效地使用它。

zip() 函數(shù)工作原理

zip() 函數(shù)根據(jù)位置將多個(gè)可迭代對象(如列表)中的元素配對。這意味著每個(gè)列表的首個(gè)元素將先被配對,然后是第二個(gè)元素,依此類推。如果可迭代對象的長度存在差異,zip()函數(shù)將在最短的可迭代對象結(jié)束時(shí)停止運(yùn)行。

zip()函數(shù)的語法非常簡單:

zip(*iterables)

你可以傳入多個(gè)可迭代對象(例如列表、元組等),zip()函數(shù)會將它們組合成元組。

示例1:組合兩個(gè)列表

讓我們從一個(gè)簡單的場景開始,假設(shè)我們有兩個(gè)列表,想要將它們組合起來。想象一下,你有一個(gè)姓名列表和一個(gè)對應(yīng)的分?jǐn)?shù)列表,你期望將它們配對。

# Two lists to combine
names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 88]

# Using zip() to combine them
zipped = zip(names, scores)

# Convert the result to a list so we can see it
zipped_list = list(zipped)
print(zipped_list)

在這個(gè)示例當(dāng)中,zip() 函數(shù)把兩個(gè)列表names 和 scores逐一對元素進(jìn)行配對。names 中的第一個(gè)元素(“Alice”)與 scores 中的第一個(gè)元素(85)進(jìn)行配對,依此類推。當(dāng)我們把結(jié)果轉(zhuǎn)化為列表時(shí),其呈現(xiàn)出如下模樣:

[('Alice', 85), ('Bob', 90), ('Charlie', 88)]

這使得以結(jié)構(gòu)化的方式處理相關(guān)數(shù)據(jù)變得容易。

示例2:當(dāng)列表長度不均等時(shí)會出現(xiàn)什么情況

假設(shè)你有不同長度的列表。那會發(fā)生什么呢?zip() 函數(shù)十分聰明,當(dāng)它到達(dá)最短列表的末尾時(shí)會立即停止。

# Lists of different lengths
fruits = ["apple", "banana"]
prices = [100, 200, 150]

# Zipping them together
result = list(zip(fruits, prices))
print(result)

在這種情況下,fruits 列表有兩個(gè)元素,而 prices 列表有三個(gè)。但 zip() 只會組合前兩個(gè)元素,忽略 prices列表中多余的值。輸出:

[('apple', 100), ('banana', 200)]

請注意,prices列表中的最后一個(gè)值(150)被忽略掉了,因?yàn)閒ruits列表中不存在第三個(gè)元素與它配對。zip() 函數(shù)能夠確保在處理長度不均等的列表時(shí)不會產(chǎn)生錯(cuò)誤,然而這也意味著倘若你的列表中元素不均衡,你或許會丟失一部分?jǐn)?shù)據(jù)。

示例3:解壓縮對象

若你期望對zip()操作進(jìn)行反轉(zhuǎn),即在將兩個(gè)列表進(jìn)行壓縮處理之后,你或許想要將它們再度拆解為單獨(dú)的列表。此時(shí),你可以使用解包運(yùn)算符 * 來便捷地達(dá)成這一目標(biāo)。

# Zipped lists
cities = ["New York", "London", "Tokyo"]
populations = [8000000, 9000000, 14000000]

zipped = zip(cities, populations)

# Unzipping them
unzipped_cities, unzipped_populations = zip(*zipped)

print(unzipped_cities)
print(unzipped_populations)

在這里,我們首先使用zip()函數(shù)將city和populations列表壓縮在一起。然后,通過zip(*zipped)解壓縮的方式,將合并后的元組“解壓”回兩個(gè)單獨(dú)的列表。這里的*運(yùn)算符起到了解包的作用,它將zipped(即之前通過zip()函數(shù)得到的元組迭代器)中的元組解包成它們原始的組成部分。輸出:

('New York', 'London', 'Tokyo')
(8000000, 9000000, 14000000)

這個(gè)示例展示了如何反轉(zhuǎn)壓縮(zipping)過程以恢復(fù)原始數(shù)據(jù)。

示例4:壓縮兩個(gè)以上列表

在使用 zip() 函數(shù)時(shí),并非局限于僅對兩個(gè)列表進(jìn)行壓縮。你能夠依據(jù)自身需求對任意數(shù)量的可迭代對象進(jìn)行壓縮。以下呈現(xiàn)的是一個(gè)包含三個(gè)列表的實(shí)例。

# Three lists to zip
subjects = ["Math", "English", "Science"]
grades = [88, 79, 92]
teachers = ["Mr. Smith", "Ms. Johnson", "Mrs. Lee"]

# Zipping three lists together
zipped_info = zip(subjects, grades, teachers)

# Convert to a list to see the result
print(list(zipped_info))

在這個(gè)示例中,我們將壓縮三個(gè)列表——subjects、grades和 teachers。來自每個(gè)列表的第一個(gè)項(xiàng)目被組合在一起,隨后是第二個(gè),依此類推。 輸出:

[('Math', 88, 'Mr. Smith'), ('English', 79, 'Ms. Johnson'), ('Science', 92, 'Mrs. Lee')]

這樣,可以將多個(gè)相關(guān)的信息片段組合成易于處理的元組。

示例5:壓縮字符串

在Python中,字符串也是可迭代對象,因此可以像處理列表一樣對它們使用zip()函數(shù)。讓我們嘗試將兩個(gè)字符串組合在一起。

# Zipping two strings
str1 = "ABC"
str2 = "123"

# Zipping the characters together
zipped_strings = list(zip(str1, str2))
print(zipped_strings)

在這個(gè)示例中,str1的第一個(gè)字符將與str2的第一個(gè)字符組合在一起,以此類推。輸出:

[('A', '1'), ('B', '2'), ('C', '3')]

如果你需要處理多個(gè)字符串中的字符,或者將多個(gè)字符串中的字符進(jìn)行配對組合,那么這會特別有用。

示例6:壓縮字典

盡管字典(dictionaries )與列表存在些許差異,但是你依然能夠運(yùn)用 zip() 將它們組合起來。默認(rèn)狀況下,zip()僅僅會壓縮字典的鍵(keys)。下面讓我們來看一個(gè)示例:

# Two dictionaries
dict1 = {"name": "Alice", "age": 25"}
dict2 = {"name": "Bob", "age": 30"}

# Zipping dictionary keys
zipped_keys = list(zip(dict1, dict2))
print(zipped_keys)

在這里, zip() 將兩個(gè)字典中的鍵配對。輸出:

[('name', 'name'), ('age', 'age')]

如果你想壓縮字典的值,你可以使用.values()方法來實(shí)現(xiàn):

zipped_values = list(zip(dict1.values(), dict2.values()))
print(zipped_values)

輸出:

[('Alice', 'Bob'), (25, 30)]

現(xiàn)在,你可以輕松地組合兩個(gè)字典的值。

示例7:在循環(huán)中使用 zip()

zip() 最常見的用途之一是在循環(huán)(loops)中,當(dāng)你想同時(shí)處理多個(gè)列表時(shí)。下面是一個(gè)示例:

# Lists of names and scores
names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 88]

# Using zip() in a loop
for name, score in zip(names, scores):
 print(f"{name} scored {score}")

這個(gè)循環(huán)同時(shí)遍歷了names和scores兩個(gè)列表,將每個(gè)名字與其對應(yīng)的分?jǐn)?shù)進(jìn)行配對。輸出:

Alice scored 85
Bob scored 90
Charlie scored 88

在循環(huán)中使用zip()函數(shù),當(dāng)處理相關(guān)數(shù)據(jù)時(shí),可以使的代碼更加整潔和易于閱讀

結(jié)論

zip()函數(shù)是Python中一個(gè)非常實(shí)用的工具,它允許將多個(gè)可迭代對象組合成元組,從而更容易地處理相關(guān)數(shù)據(jù)。無論是在將列表、元組或字符串中的項(xiàng)目配對,zip()都能簡化的代碼,并且在循環(huán)中特別有用。

通過本文中的示例,應(yīng)該對如何在各種情況下使用zip()有了很好的理解。

如果發(fā)現(xiàn)這個(gè)關(guān)于Pythonzip()函數(shù)的解釋很有幫助,那么可能會喜歡我在博客上分享的更多深入編程教程和概念。

譯者介紹

劉濤,51CTO社區(qū)編輯,某大型央企系統(tǒng)上線檢測管控負(fù)責(zé)人。

原文標(biāo)題:Python’s zip() Function Explained with Simple Examples,作者:Sahil Mahapatra


責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-03-25 20:13:28

Python

2023-02-14 16:45:54

2011-04-08 15:50:54

Oracleover函數(shù)

2020-05-11 09:38:52

Python開發(fā)函數(shù)

2010-03-05 09:49:34

Python文件操作

2009-08-20 16:35:39

什么是WMI

2023-09-20 00:08:37

2010-07-06 14:12:58

SQL Server數(shù)

2010-09-01 09:40:33

DB2函數(shù)OLAP

2019-04-08 10:36:23

SCSILinux內(nèi)核

2009-02-10 10:57:09

危險(xiǎn)函數(shù)PHPCLI

2011-07-11 14:53:01

java主函數(shù)

2009-07-14 14:04:36

WebWork框架

2024-11-09 08:26:52

Python裝飾器

2023-03-28 09:58:56

Python變量

2010-03-19 14:44:30

Python模塊級函數(shù)

2024-08-06 16:04:03

2011-07-22 12:22:49

室內(nèi)光纜

2024-06-24 08:36:54

2024-05-15 09:16:05

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产成人免费视频网站高清观看视频 | 日韩国产一区二区三区 | 日韩视频在线观看一区二区 | 国产精品v | 国产激情视频网 | 日本成人在线免费视频 | 亚洲免费一区 | 欧美h| 久久一起草 | 羞羞视频网页 | 久久免费观看视频 | 网站黄色在线免费观看 | 国产免费av在线 | 亚洲福利| 一区二区三区在线免费看 | 91精品入口蜜桃 | 亚洲精品久久国产高清情趣图文 | 中文字幕av色 | 一区二区三区视频在线免费观看 | 五月综合色啪 | 久热免费在线 | 国产日韩一区二区三区 | 在线一区视频 | 欧美国产日韩一区 | 91影院在线观看 | 国内精品视频在线观看 | 午夜一区二区三区在线观看 | 久久九精品 | 一区精品国产欧美在线 | 国产精品一区二区久久 | 国产美女一区 | 97色在线观看免费视频 | 成人伊人网 | 4h影视| 欧美另类视频 | 久久久久久久久久毛片 | 欧美日韩高清 | 亚洲男人网 | 黄色网址在线播放 | 精品免费国产一区二区三区 | 欧美久|