Как удалить значения словаря списков - PullRequest
0 голосов
/ 13 апреля 2019

Как удалить определенный элемент каждого элемента словаря?

Учитывая следующий пример, я хочу удалить 2-й элемент в key1, key2 и key3.

data{'key1':[value1 ,"abc" ,value3, value4]
     'key2':[value1 ,"def" ,value3, value4]
     'key3':[value1 ,1 ,value3, value4]}

Так должно стать:

Input: 2
Output: 
data{'key1':[value1,value3,value4]
     'key2':[value1,value3,value4]
     'key3':[value1,value3,value4]}

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Из вашего примера, я полагаю, вы имеете в виду аналогичные значения вместо аналогичных индексов.

Извлеките этот ответ, если это так: Удаление дубликатов из словаря

Обратите внимание, что PythonВ словаре метод «values ​​()» работает на O (n), поэтому решение с наибольшим количеством голосов будет иметь сложность O (n ^ 2), где n - количество элементов в исходном словаре.

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

data = {'key1':[1,2,3,4],
     'key2':[1,2,3,4],
     'key3':[1,2,3,4]}

result = {}

for key,value in data.items():
    if value not in result.values():
        result[key] = value

В конце слова «result» будут иметь словарь без дубликатов.

0 голосов
/ 13 апреля 2019
for value in data.values():
    del value[index]

?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...