获取元组列表中给定组件的索引



好的,所以我想在具有给定值的元组列表中获得组件的索引。以下是我迄今为止所做的一个例子:

导入随机

元组=[('a',1.09(,('b',5.89(,[('c',6.85(,('d',9.48(]

x=随机选择(元组([0]

这里,Im随机返回a、b、c或d(x(。现在,我想找到"x"中包含x的分量的索引;元组";列表

希望你明白我的意思!

应该这样做:

index_of_element = [i for i, t in enumerate(tuples) if t[0] == x][0]

使用enumerate,您可以通过创建for元素的元组及其相应索引来遍历tuples。示例:(0,('a',1.08((

然后,通过在列表理解中使用if,您可以根据当前元组示例的第一个元素t[0]的x值来过滤元素

这将为您提供一个包含您要查找的元素的数组。最后[0]给出了这个元素。

你可能想检查一下列表是否为空,以防找不到。

您可以使用enumerate的列表理解来确定哪个索引与搜索值匹配。

indexes = [i for i,v in enumerate(tuples) if v[0] == x]

如果索引存在并且是唯一的,则可以获得第一个元素:indexes[0]

也就是说,我不知道你的用例是什么,但随机选择索引可能更容易,而不是值:

index = random.randint(0, len(tuples))
values = tuples[index][0]

最新更新