0

私はこのようなものを持っています:

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

上記のリストから、私はこのようなことをしたいと思います:

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

すべての色は一意である必要があります。そのため、最初のリストの2番目の「赤」を無視する必要があります。私の現在の解決策は、多くのループと条件を持っています。より良い解決策を探しています。

4

3 に答える 3

6

順序は重要ではないと言ったので、次のようにすることができます。

list(enumerate(set(color_names)))
于 2013-03-11T14:32:29.290 に答える
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()リストに一意の要素を含めるようにします。

于 2013-03-11T14:34:22.567 に答える
0

言葉が多すぎますが、機能します:

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

print res
于 2013-03-11T14:40:54.307 に答える