【问题标题】:getting the index of a given component in a list of tuples获取元组列表中给定组件的索引
【发布时间】:2021-11-13 21:17:58
【问题描述】:

好的,所以我想在具有给定值的元组列表中获取组件的索引。这是我到目前为止所做的一个示例:

随机导入

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

x = random.choice(元组)[0]

在这里,我随机取回 a、b、c 或 d(x)。现在,我想在“元组”列表中找到包含 x 的组件的索引。

希望你明白我的意思!

【问题讨论】:

    标签: python indexing tuples


    【解决方案1】:

    应该这样做:

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

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

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

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

    您可能需要检查列表是否为空,以防找不到。

    【讨论】:

      【解决方案2】:

      您可以使用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]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-03
        • 2016-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多