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

时间:2013-03-11 14:27:08

标签: python

我有这样的事情:

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

从上面的列表中我想做这样的事情:

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

每种颜色都应该是唯一的,这就是为什么我必须忽略第一个列表中的第二个“红色”。 我目前的解决方案有许多循环和条件。我正在寻找更好的解决方案。

3 个答案:

答案 0 :(得分:6)

既然您说订单无关紧要,您可以这样做:

list(enumerate(set(color_names)))

答案 1 :(得分: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()使列表包含唯一元素。

答案 2 :(得分:0)

太罗嗦但有效:

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

print res