我在一個單獨的列表中創建一個包含最低三個數字索引的列表(不包括0--這是knn函數的一部分)。append和enumerate的行爲 - 附加到列表時,我可以按照它們追加的方式以外的順序返回值嗎?
x = [0, 6, 9, 8, 7, 2, 5, 3, 4, 1]
y = []
for index, item in enumerate(x):
if 0 < item < 4:
y.append(index)
print y
Out: [5, 7, 9]
我希望y
等於[9, 5, 7]
,但列表返回排序。雖然這可能對我正在做的事很好 - 我怎樣才能按照它們附加的順序返回索引?
更新:很多人很快指出,我是一個白癡,我的意思是要問,我怎麼能返回y等於[9,5,7]
,而不是按照他們附加的順序返回索引?
爲什麼你希望得到'[9,5,7]' ?你認爲你在附加指數的順序是什麼? – BrenBarn
'[9,5,7]'看起來像滿足不等式的項目的指數,按相應項目的值排序(項目在索引9處爲1,然後在索引5處爲2,然後在索引7處爲3) 。 – scrpy
啊對不起!大腦故障了一分鐘 - 我實際上是在如何返回y,所以IS是按照[9,5,7]'的順序排列的。爲了清晰起見,將編輯 – Cate