網(wǎng)站首頁 編程語言 正文
1.引言
在本文中,我將帶領(lǐng)大家深入了解Python中的zip()函數(shù),使用它可以提升大家的工作效率。
閑話少說,我們直接開始吧!
2. 基礎(chǔ)知識
首先,我們來介紹一些基礎(chǔ)知識點:
Python中的某些數(shù)據(jù)類型是不可變的(例如字符串、整數(shù)),而有些數(shù)據(jù)類型是可變的(如列表和字典)。不可變的數(shù)據(jù)對象在創(chuàng)建后不能更改,可變對象可以更改。
可迭代對象是一個單獨返回其每個成員元素的對象。比如列表、元組、字符串和字典都是可迭代的對象。我們可以使用iter()或for循環(huán)來迭代可迭代對象。
當(dāng)一個對象返回迭代器時,我們必須使用它來檢索一個我們可以看到或使用的對象。
3. 向zip函數(shù)傳遞參數(shù)
我們可以在函數(shù)zip()中傳遞任意數(shù)量的可迭代項:
3.1 傳遞零個參數(shù)
樣例如下:
>>> zipped = zip()
>>> list(zipped)
[]
上述代碼中,我們向函數(shù)zip()傳遞了零個元素,此時該函數(shù)返回空。
3.2 傳遞一個參數(shù)
傳遞一個參數(shù)會創(chuàng)建一個元組集合,每個元組中都有一個元素。
示例代碼如下:
# create a list of student names
>>> student_names = ['Lindsay', 'Harry', 'Peter']
# zip the list
>>> zipped = zip(student_names)
# consume with list()
>>> list(zipped)
[('Lindsay',), ('Harry',), ('Peter',)]
在上述代碼中,我們創(chuàng)建了一個列表,其中有三個字符串表示三個學(xué)生的姓名。
3.3 傳遞兩個參數(shù)
傳遞兩個參數(shù)將創(chuàng)建一個具有成對的元組集合,其中第一個元素來自第一個參數(shù),第二個元素來自第二個參數(shù)。
示例代碼如下:
# create a list of student ids
>>> student_ids = ['123', '4450', '5600']
# create a list of student names again, so that we do not forget the earlier steps!
>>> student_names = ['Lindsay', 'Harry', 'Peter']
# zip the lists
>>> zipped = zip(student_names, student_ids)
>>> list(zipped)
[('Lindsay', '123'), ('Harry', '4450'), ('Peter', '5600')]
在上述代碼中,我們創(chuàng)建了另一個包含三個字符串的列表。此時,每個元素用于表示每個學(xué)生student_names的對應(yīng)student_ids。
此時,我們可以使用for循環(huán)來遍歷訪問,樣例代碼如下:
>>> student_names = ['Lindsay', 'Harry', 'Peter']
>>> student_ids = ['123', '4450', '5600']
>>> for student_name, student_id in zip(student_names, student_ids):
... print(student_name, student_id)
...
Lindsay 123
Harry 4450
Peter 5600
3.4 傳遞長度不等的參數(shù)
到目前為止,我們只研究了每個可迭代項長度相同的示例:包含學(xué)生姓名和id的列表長度都是3,但我們也可以傳遞不同長度的可迭代項。此時,zip函數(shù)將返回一個元組集合,其中元組的數(shù)量等于長度最小的可迭代項。它將忽略長度較長的可迭代項中的其余元素,如下所示:
# student_ids is a list with 4 elements?
>>> student_ids = ['123', '4450', '5600', '1']
# student_namdes is a list with 3 elements?
>>> student_names = ['Lindsay', 'Harry', 'Peter']
# zip is completely ignoring the last element of student_ids?
>>> list(zip(student_names, student_ids))
[('Lindsay', '123'), ('Harry', '4450'), ('Peter', '5600')]
>>> for student_name, student_id in zip(student_names, student_ids):?
... ? ? print(student_name, student_id)
...?
Lindsay 123
Harry 4450
Peter 5600
從上面的示例中可以看到,函數(shù)zip對student_ids中的最后一個元素1沒有做任何操作。因此,在傳遞給zip()之前,檢查可迭代項的長度非常重要。
4. 總結(jié)
本文重點介紹了Python中關(guān)于zip函數(shù)的基礎(chǔ)知識點總結(jié),并給出了相應(yīng)的代碼示例。
原文鏈接:https://blog.csdn.net/sgzqc/article/details/129229033
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-06-29 python人工智能tensorflow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)CNN_python
- 2022-07-21 css實現(xiàn)水平居中和垂直居中,清除浮動
- 2022-03-16 shell中的排序算法示例代碼_linux shell
- 2022-10-11 kafka-報錯kafka.common.InconsistentClusterIdExceptio
- 2022-05-15 Python獲取網(wǎng)絡(luò)圖片和視頻的示例代碼_python
- 2023-07-07 @Autowired 注解有什么用?@Qualifier 注解有什么用? @RequestMappi
- 2022-01-20 console基礎(chǔ)用法,輸出添加css,打印時間差,計數(shù)等
- 2023-11-22 Linux Ubuntu Linux中建立、復(fù)制、移動、刪除文件的命令
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支