我有这样的事情:
color_names = ('red', 'blue', 'orange', 'red')
从上面的列表中我想做这样的事情:
colors = [(0, 'red'), (1, 'blue'), (2, 'orange')]
每种颜色都应该是唯一的,这就是为什么我必须忽略第一个列表中的第二个“红色”。 我目前的解决方案有许多循环和条件。我正在寻找更好的解决方案。
答案 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