如何确保多维数组中的值唯一?

0 投票
3 回答
866 浏览
提问于 2025-04-17 18:41

我有这样的一个列表:

color_names = ('red', 'blue', 'orange', 'red')

从上面的列表中,我想做成这样:

colors = [(0, 'red'), (1, 'blue'), (2, 'orange')]

每种颜色都应该是独一无二的,所以我必须忽略第一个列表中的第二个“红色”。我现在的解决方案有太多的循环和条件,我在寻找一个更好的方法。

3 个回答

0

虽然说得有点多,但确实有效:

color_names = ('red', 'blue', 'orange', 'red')
i = 0
res = []
for item in set(color_names):
    res.append((i,item))
    i+=1

print res
3

如果顺序不重要的话:

color_names = ('red', 'blue', 'orange', 'red')
colors = [(i, color) for i, color in enumerate(set(color_names))]

或者:

colors = list(enumerate(set(color_names)))

set() 可以让列表里的元素都是独一无二的。

6

因为你说顺序不重要,所以你可以简单地这样做:

list(enumerate(set(color_names)))

撰写回答