【问题标题】:Generating index for element in list of 10000 numbers为 10000 个数字列表中的元素生成索引
【发布时间】:2022-01-08 20:55:04
【问题描述】:

我有 10000 个随机数的列表。我想要列表中该元素的元素及其对应的索引在 5 到 500 之间。我必须通过简单的代码获取元素

elements = [x for x in list_10000 if 5 <= x <= 500]

为了获得索引,我做到了

element_index = [list_10000.index(x) for x in list_10000 if 5 <= x <= 500]

上面的索引代码花了很多时间但没有执行。我尝试过使用范围和枚举。但他们给出的值与我用len(elements) 得到的值不同 如何获得索引值?任何帮助都会很棒!提前谢谢你。

【问题讨论】:

    标签: python list for-loop


    【解决方案1】:

    你可以使用enumerate:

    element_index = [i for i, x in enumerate(list_10000) if 5 <= x <= 500]
    

    【讨论】:

    • 这将枚举5到500之间的值。所以大小会有所不同。
    • @unicorn 我不太明白,也许我遗漏了一些东西:这为您提供了 elementslist_10000 中项目的相应索引。这不是你想要的吗?
    • 不,我想要它在循环中选择的元素的索引。
    • @unicorn 抱歉,我仍然很困惑:在循环中选择的元素 表示5 &lt;= x &lt;= 500?而indices of指的是list_10000?中对应的索引?
    • @unicorn 那么我看不出有什么区别:) 如果你有勇气,你可以在你的问题中添加一个小样本——只是为了澄清。
    【解决方案2】:

    当您尝试使用index(1) 两次时,两次都会得到相同的结果,因此重复值将产生相同的索引。

    您可以改为使用字典,并立即写入值和它的索引:

    {i: list_10000[i] for i in range(len(list_10000)) if 5 <= list_10000[i] <= 500}
    

    这将创建一个字典,其中索引是键,值是索引处的数字。

    【讨论】:

    • 如果这解决了您的问题,请将答案标记为正确。作为旁注,@Timus 的另一个答案将生成您正在寻找的索引数组
    • 它会给出生成元素的索引。
    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 2020-08-25
    • 1970-01-01
    • 2021-11-25
    • 2021-08-16
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多