我有這樣的事情:如何確保多維數組中的唯一值?
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')]
每個顏色應該是唯一的,這就是爲什麼我要忽略第二個「紅色'在第一個列表中。 我目前的解決方案有很多循環和條件。我正在尋找更好的解決方案。
如果順序並不重要:
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
如果你正在迭代通過'set',你不需要檢查元素是否已經在'res'中。另外,「in」不符合你的想法。試試這個:>>>藍色在[(0,'blue')] False' – hughdbrown 2013-03-11 14:43:29
@hughdbrown謝謝,我糾正了它。 – varnie 2013-03-11 14:45:04
是否爲了此事?如果是這樣,哪個元素被選中? – 2013-03-11 14:28:05
用顏色作爲關鍵詞,你會使用字典更好嗎? so colors = {'red':0,'blue':1,'orange':2}?否則,你將不得不手動實施測試 – 2013-03-11 14:28:22
爲什麼你的標題說「多維數組」,當這個列表只有一維? – 2013-03-11 14:29:46