Как изменить удаление повторяющихся элементов в значениях словаря, python3?

#python-3.x

#python-3.x

Вопрос:

Пример:

 a={2:[2,2,3,5,6,7], 3:[5,5,2,3,7,7,8],...}
  

a — это dict, и я хочу удалить повторяющиеся элементы в значениях, а затем изменить dict следующим образом:

 a={2:[2,3,5,6,7], 3:[5,2,3,7,8],...}
  

Как реализовать?

Комментарии:

1. вместо list в качестве значения вы можете попробовать set? это автоматически не допускает дублирования, но не гарантирует порядок вставки

Ответ №1:

Если порядок не имеет значения, используйте это понимание списка, которое в основном преобразует каждый список в набор (который автоматически удаляет дубликаты), а затем преобразует его обратно в список:

 a = {2:[2,2,3,5,6,7], 3:[5,5,2,3,7,7,8]}

a = {k: list(set(a[k])) for k in a}

print(a) # ==> {2: [2, 3, 5, 6, 7], 3: [2, 3, 5, 7, 8]}
  

Ответ №2:

вы можете использовать set для удаления дубликатов

 a = {2:[2,2,3,5,6,7], 3:[5,5,2,3,7,7,8],...}

# using dict comprehension
a = {key: list(set(value)) for key, value in a.items()}
  

прочитайте больше о наборах:https://docs.python.org/3/tutorial/datastructures.html#sets