好的,所以我想在具有给定值的元组列表中获得组件的索引。以下是我迄今为止所做的一个例子:
导入随机
元组=[('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]