Python如何在for循環(huán)中同時(shí)使用兩個(gè)變量與兩個(gè)控制條件
在C語(yǔ)言中常常遇到for循環(huán)使用兩個(gè)變亮和兩個(gè)控制條件的情況,比如我要輸出矩陣對(duì)角線元素的坐標(biāo)時(shí)
例如輸出:
0,0
1,1
2,2
3,3
...
在C語(yǔ)言中,我們會(huì)這樣使用for循環(huán)來(lái)輸出
for(i=0,j=0;i<n,j<n;i++,j++){
printf(i,j)
printf("\n")
}
在python中如何使用for循環(huán)達(dá)到類似于上面c語(yǔ)言的這樣的結(jié)果呢?
一開始很多人不假思索的就直接敲下如下的代碼
for i in range(n):
for j in range(n):
很明顯,這樣的邏輯是不對(duì)的,因?yàn)槲覀円笤谝粋€(gè)for循環(huán)內(nèi)滿足兩個(gè)控制條件,如果按照上面代碼的邏輯,就是遍歷完一次j的值,i才會(huì)+1,和上面每一次i,j的值同時(shí)加一相違背。
這里就可以用python中的zip()函數(shù)。
先來(lái)直觀看一下zip()函數(shù)的作用
a = [1,2,3] b = [4,5,6] c = [4,5,6,7,8] zipped = zip(a,b) # 返回一個(gè)對(duì)象 zipped <zip object at 0x103abc288> >>> list(zipped) # list() 轉(zhuǎn)換為列表 [(1, 4), (2, 5), (3, 6)] >>> list(zip(a,c)) # 元素個(gè)數(shù)與最短的列表一致 [(1, 4), (2, 5), (3, 6)]
故可以改為
for i,j in zip(range(n),range(n)):
print(i,j)
輸出結(jié)果同上.
有些人可能疑惑這里也可以用
for i in range(n):
print(i,i)
來(lái)表示
不過(guò)這個(gè)是一個(gè)特殊的情況,如果i,j值不同的話,我們只能使用zip()函數(shù)來(lái)達(dá)到同上面c語(yǔ)言同樣的目的。
附:python多個(gè)變量的for循環(huán)
當(dāng)for循環(huán)有兩個(gè)需要迭代的對(duì)象時(shí),要用zip對(duì)這多個(gè)變量封裝,否則會(huì)報(bào)錯(cuò)“too many values to unpack”
錯(cuò)誤的例子:
starts = [0,1,2,3,4]
ends = [5,6,7,8,9]
for start, end in starts, ends:
print((start, end))正確的例子:
starts = [0,1,2,3,4]
ends = [5,6,7,8,9]
for start, end in zip(starts, ends):
print((start, end))總結(jié)
到此這篇關(guān)于Python如何在for循環(huán)中同時(shí)使用兩個(gè)變量與兩個(gè)控制條件的文章就介紹到這了,更多相關(guān)Python for循環(huán)同時(shí)用兩個(gè)變量和控制條件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?VisPy庫(kù)高性能科學(xué)可視化圖形處理用法實(shí)例探究
VisPy是一個(gè)用于高性能科學(xué)可視化的Python庫(kù),它建立在現(xiàn)代圖形處理單元(GPU)上,旨在提供流暢、交互式的數(shù)據(jù)可視化體驗(yàn),本文將深入探討VisPy的基本概念、核心特性以及實(shí)際應(yīng)用場(chǎng)景,并通過(guò)豐富的示例代碼演示其強(qiáng)大的可視化能力2023-12-12
Python3.9兼容的NumPy版本實(shí)現(xiàn)
本文主要介紹了Python3.9兼容的NumPy版本實(shí)現(xiàn),文中通過(guò)示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
Python數(shù)據(jù)可視化實(shí)踐之使用Matplotlib繪制圖表
數(shù)據(jù)可視化是數(shù)據(jù)分析的重要環(huán)節(jié),通過(guò)將數(shù)據(jù)轉(zhuǎn)化為圖形,可以更直觀地展示數(shù)據(jù)特征和規(guī)律。Python中的Matplotlib庫(kù)是一個(gè)強(qiáng)大的數(shù)據(jù)可視化工具,本文將帶您了解Matplotlib的基本使用方法,以及如何繪制常見的圖表2023-05-05
卸載tensorflow-cpu重裝tensorflow-gpu操作
這篇文章主要介紹了卸載tensorflow-cpu重裝tensorflow-gpu操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
python+lunarcalendar庫(kù)實(shí)現(xiàn)使用農(nóng)歷日期
這篇文章主要為大家詳細(xì)介紹了python如何通過(guò)lunarcalendar庫(kù)實(shí)現(xiàn)使用農(nóng)歷日期,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以參考一下2024-11-11
解決Pyinstaller打包為可執(zhí)行文件編碼錯(cuò)誤的問(wèn)題
這篇文章主要介紹了解決Pyinstaller打包為可執(zhí)行文件編碼錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
python使用time、datetime返回工作日列表實(shí)例代碼
這篇文章主要介紹了python使用time、datetime返回工作日列表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

