Kal*_*lol 3 python indexing list
我有一个这样的清单:
l=[1,2,2,3,4,5,5,5]
Run Code Online (Sandbox Code Playgroud)
我们可以看到列表列表包含 5 个唯一值,总共有 8 个值。
我想要列表格式的列表中唯一值的索引。
所以输出看起来像:
indexes=[0,1,3,4,5]
Run Code Online (Sandbox Code Playgroud)
如何使用 python 以最有效的方式做到这一点?
为什么np.unique这里没人提??
import numpy as np
np.unique([1,6,6,2,2,3,4,5,5,5], return_index=True)
>>> (array([1, 2, 3, 4, 5, 6]), array([0, 3, 5, 6, 7, 1], dtype=int64))
Run Code Online (Sandbox Code Playgroud)
第一个数组包含(排序的)唯一值,第二个数组(如果return_index设置为True则返回)是第一次出现的索引列表
您可以为此使用内置类型。
代码
l=[1,2,2,3,4,5,5,5]
indexes = [l.index(x) for x in set(l)]
Run Code Online (Sandbox Code Playgroud)
解释
set list.index 评论
正如在评论中指出,如果为了对你很重要,你可以使用sorted的set或者根据提供的数据生成的索引列表。如果数据已经排序,我建议这样做:
indexes = [l.index(x) for x in sorted(set(l))]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6642 次 |
| 最近记录: |