我试图获取列表中最大值的索引。到目前为止,它确实工作正常,但现在我需要在循环中创建它,并将这些索引和值保存在列表中。不知何故,我得到了一个错误,说我的最大值不在列表中,尽管我可以清楚地看到它在列表中。
我的代码到目前为止做了什么:我正在遍历一个JSON文件。在该文件中,我有一个包含许多值y00B
的列表。在此列表中,我在res = file['labelindices']
之前的代码中保存了一些索引。现在,在这些索引之间的范围中,我希望获取最大值及其索引
下面是我代码:
for file in json_data[sizes[i]]:
count += 1 # counting the files i am iterating trough
res = file['labelindices'] # indices i want to get the values from
y00B = file['triggerdata'] # list of my data
for r in range(0, 2):
valuesPeak = y00B[res[r]:res[r+2]] # this is right, do not ask :)
print('valuesPeak:',valuesPeak)
print('max value of current list', max(valuesPeak), 'count file = '
, count, ', length', len(valuesPeak))
if len(valuesPeak) == 0:
valuesPeak = 0
if valuesPeak == 0:
max_val.append(0)
max_index.append(0)
else:
max_val.append(max(valuesPeak))
print(y00B.index(max_val))
max_index.append(y00B.index(max_val))
这是错误信息和我的打印结果
>> ValueError: [44431] is not in list
valuesPeak: [26793, 29441, 32237, 35061, 37752, 40162, 42121, 43505, 44278, 44431, 43984, 42923, 41367, 39408, 37258, 34943, 32617, 30330]
max value of current list 44431 count file = 1 , length 18
有人能告诉我我做错了什么吗?值明明在列表里,为什么找不到它?当我重写代码时,没有for r range (0,2)
循环,它工作得很好,但是我需要写两次,这是我试图避免的。
2条答案
按热度按时间6ie5vjzr1#
我删除了max_瓦尔变量bc,看起来我只需要索引。代码是:
gt0wga4j2#
您可以简单地查找列表中任何值索引: