如何确保多维数组中的值唯一?
我有这样的一个列表:
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)))