2015-10-27 91 views
0

我有兩個列表,pPop和sPop。按照升序編號排序後,它是pPop(它們是城鎮/城市的人口)。使用循環比較兩個列表以找到匹配值

我也有其他四個名單,pName,pType,pLat和pLong,但我現在在這個時候並沒有對他們做任何事情。

我需要根據人口規模的升序來對這個城市列表進行排序,而且我基本上被告知要使用目前我所知道的來做 - 這並不是那麼多。我嘗試過使用元組和其他東西,但那些屬於我沒有教過的東西。

我必須將sPop與pPop進行比較,並使用從中得到的信息對其他四個列表重新排序,以便我可以將它們吐出到.csv文件中。

我明白了,我只是不確定執行情況。我認爲我需要在所有的sPop上運行一個循環,其中一個循環內部運行所有pPop,它檢查sPop [x] = pPop [y](x從0到len(sPop))給出一些如果它是真的,那麼肯定的迴應。如果確實如此,則將pVar [y]設置爲等於sVar [x]。

寫完了這看起來很好,我只是不完全知道如何循環爲python中的每個索引。當我這樣做,比方說,

for x in sPop 

x = sPop[i] i=range(0:len(sPop)) 

當我寧願X指指數本身,而不是指數在數組/列表的價值。

短版:遍歷索引以陣列與

對於x陣列

,其中x是指索引。怎麼做?如果你不能,在循環中引用索引的最好方法是什麼?現在已經很晚了,我花了大約六個小時的時間,試圖在前幾天使用不同的方法來解決這個問題,結果我的大腦被炸了。

編輯:

好了,知道了。對於任何人誰是有點好奇,你遍歷SPOP,然後在撥備前營業利潤,(使用 爲indexX,VARx前提在枚舉(列表)兩次)(也許someone'll跨越這一個五年跌倒),然後使用

if varX ==varY 
sortedList.append(initialList[varY]) 

不能放下實際的代碼,否則我可能會被剽竊檢查器打砸。

回答

2

要獲得指數:

for index, x in enumerate(sPop): 
    print index, x 
+0

可能還沒有被教導約'enumerate'呢。 –

+0

我沒有,但我會沒事的。你實際上可以使用我們沒有學過的東西,我只是指定了這些參數,所以人們不會問我爲什麼我不使用元組或什麼 - 它們比枚舉更適合挑選。 – Spectre1235

+0

@ Spectre1235,'index,x'實際上是一個元組:)在Python中沒有運行到元組中很難做很多有趣的事情。 –

2
for x in range(len(sPop)): 
    item = sPop[x]