我在一个单独的列表中创建一个包含最低三个数字索引的列表(不包括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