我有这样的事情:
color_names = ('red', 'blue', 'orange', 'red')
从上面的列表中,我想做这样的事情:
colors = [(0, 'red'), (1, 'blue'), (2, 'orange')]
每种颜色都应该是唯一的,这就是为什么我必须忽略第一个列表中的第二个“红色”。我目前的解决方案有很多循环和条件。我正在寻找更好的解决方案。
我有这样的事情:
color_names = ('red', 'blue', 'orange', 'red')
从上面的列表中,我想做这样的事情:
colors = [(0, 'red'), (1, 'blue'), (2, 'orange')]
每种颜色都应该是唯一的,这就是为什么我必须忽略第一个列表中的第二个“红色”。我目前的解决方案有很多循环和条件。我正在寻找更好的解决方案。
既然您说顺序无关紧要,您可以简单地执行以下操作:
list(enumerate(set(color_names)))
如果顺序无关紧要:
color_names = ('red', 'blue', 'orange', 'red')
colors = [(i, color) for i, color in enumerate(set(color_names))]
或者:
colors = list(enumerate(set(color_names)))
set()
使列表包含唯一元素。
太罗嗦,但它的工作原理:
color_names = ('red', 'blue', 'orange', 'red')
i = 0
res = []
for item in set(color_names):
res.append((i,item))
i+=1
print res