我试图获取数组中某些重复元素的索引。这是代码:
cc = []
ang=[12,13,89.0,14,15,16,89.0,17]
class Index:
def __init__(self, **kwargs):
self.Angle = kwargs['Angle']
def ind(self):
for mm in range(0, len(self.Angle)):
if self.Angle[mm] == 89.0:
ee = self.Angle.index(self.Angle[mm])
cc.append(ee)
return cc
plus = Index(Angle=ang)
plus1 = plus.ind()
print (plus1)
我想在列表(ang)中找到重复数= 89.0 的索引。我期待得到[2,6] ,但我一直[2,2]这是错误的。有谁知道我怎么解决它?我知道可以通过更改此代码的格式来实现它,但我更喜欢保留这种格式(使用kwargs和类)。谢谢!
答案 0 :(得分:0)
这是因为list.index(<element>)
返回元素的索引。如果元素出现多次index()
,则始终返回第一次出现的索引。
但是,在您的代码中,您不需要调用index
,因为您通过已经是索引的mm
访问该元素。为什么不追加mm
。像:
if self.Angle[mm] == 89.0:
cc.append(mm)
此外,可以使用列表理解来优雅地编写相同的代码,如:
indexes = [x for x in range(0, len(self.Angle)) if self.Angle[x] == 89.0]