[英]troubles with enumerate() in for loop python
我有一个包含索引的列表和一个包含值的列表。 我想检查索引的给定 position 处的值是否大于或小于列表中索引 1 position 处的值。 然后我希望我的 function 返回较小值的索引 - 因此输入索引或输入索引 1。 出于测试目的,我创建了这些:
indices = [2,5,8,11]
values = [3,10,15,4,20,30,24,11,10,2,12,8,7]
my_list = []
我设置了一个 for 循环,几乎可以满足我的要求,但它附加了值本身,而不是索引。 它看起来像这样:
for i in indices:
if values[i] > values[i-1]:
my_list.append(values[i-1])
else:
my_list.append(values[i])
这给出了 output
my_list = [10, 20, 10, 8]
然后我尝试为此目的使用枚举,但它返回一个错误。
my_list1 = []
for i,x in enumerate(indices):
if values[i] > values[i-1]:
my_list1.append(indices[x-1])
else:
my_list1.append(indices[x])
想要的 output 将是:
my_list1 = [1,4,8,11]
你很接近,只需使用i
而不是values[i]
到 append 索引:
for i in indices:
if values[i] > values[i-1]:
my_list.append(i-1)
else:
my_list.append(i)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.