我正在嘗試使用名爲countryByPop()
的函數,該函數將一個整數作爲參數。函數執行兩項操作:首先,獲取國家/地區列表名爲"countries.text"
的文本文件),並使用選擇排序算法按照羣體的降序進行排序。 二,使用整數參數返回第n個最普遍的國家。按降序對國家列表進行排序並返回第n個國家
readCountries()
是我創建的方法來打開文件"countries.text"
並顯示它。 結果看起來像這樣最終[Name, Area, Population]
:
[["Afghanistan",647500.0,25500100],["Albania",28748.0,2821977].......["Zimbabwe",390580.0,12973808]]
現在,我用的第一(排序)功能的一部分來完成:
def countryByPop():
Countries = readCountries()
for i in range(0,len(Countries)):
madeSwap = False
for j in range (0,len(Countries)-(i+1)):
if Countries[j][2] < Countries[j+1][2]:
temp = Countries[j+1]
Countries[j+1] = Countries[j]
Countries[j] = temp
madeSwap = True
if not madeSwap:
return Countries
return Countries
我似乎無法弄清楚如何返回第n個最受歡迎的國家。
可以說,我經過18作爲函數的整數參數,18爲您提供了土耳其在列表中的第18人口最多的城市,它應該打印出來是這樣的:
>>>>countryByPop(18)
["Turkey",780580.0,75627384]
>>>countryByPop(-1)
Invalid parameter: -1
您已經在排序功能中按編號訪問國家/地區。現在有什麼問題? – Psytho
你的意思是'Countries [n]'? – Pynchia
您在下面評論您指示使用選擇排序,但我想知道您是不是應該進行完整排序,而是使用快速選擇來查找第k個(第n個)元素,該快速選擇只進行部分排序。 – rcgldr