我在字典中有一个浮点值列表。它的内容如下:
dic['area'] = [12.3, 3.7, 9.43, -1, -1, 55.32, 72.6]
带-1的位置是以前的字符串(?和 - ),它们不能转换为float。我写的函数应该返回那些负值的索引:
def find_index(x,y):
for item in x:
if item < 0:
index = x.index(item)
y.append(index)
else:
continue
print (y)
其中x是dic [&#39; area&#39;] list,y是空列表。不幸的是,在
上使用该功能dic['area'] = [12.3, 3.7, 9.43, -1, -1, 55.32, 72.6]
会回复我:
[3, 3]
并且每个小于0的下一个值将导致y列表另外附加3.为什么会发生?
答案 0 :(得分:0)
因为index
的作用是什么;返回匹配的第一个项的索引。
相反,您应该在使用enumerate
for i, item in enumerate(x):
if item < 0:
y.append(i)
注意,整个事情可以更好地编写为列表理解:
print([i for i, item in enumerate(x) if item < 0])