Вы можете создать словарь поиска:
my_list = [72, 50, 3, 50, 16, 72, 3, 72, 3, 50]
colors = ['red', 'blue', 'green', 'black', 'yellow', 'purple']
lookup = dict(zip(set(my_list), colors))
output = [lookup[number] for number in my_list]
print(output)
Вывод
['red', 'green', 'black', 'green', 'blue', 'red', 'black', 'red', 'black', 'green']
Вы можете рассматривать словарь lookup
как функцию, которая назначает цветна один из номеров. В приведенном выше примере поиск имеет следующее значение:
{72: 'red', 16: 'blue', 50: 'green', 3: 'black'}
Это означает, что он будет присваивать 'red'
каждый раз, когда появляется 72
. Вы можете настроить lookup
следующим образом:
lookup = {72 : 'green', 50 : 'black', 3 : 'yellow', 16: 'purple'}
На этот раз каждый раз, когда появляется 72
, будет назначено green
. Подробнее о том, как создать словари в , см. Здесь .
Обновление
Если вы хотите сохранить порядок появления в списке, вы можетеследующее:
seen = set()
result = []
for e in my_list:
if e not in seen:
result.append(e)
seen.add(e)
print(result)
Вывод
[72, 50, 3, 16]
Обратите внимание, что список result
находится в порядке появления.