Как убрать лишние значения в словаре с python? - PullRequest
1 голос
/ 04 августа 2020

У меня есть большой словарь с ежедневным значением времени. Проблема в том, что значение времени дублируется. Их должно быть 7 раз, но их 14. Как убрать в значениях словаря элементы с индексами 8–14? У меня нет решения, поэтому я его не пробовал.

mydict = {'x': [(['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'])],
 'y': [(['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'])]}

myresult = {'x': [(['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'])],
     'y': [(['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'])]}
 

Ответы [ 4 ]

4 голосов
/ 04 августа 2020

Работает простое понимание dict:

{k: [v[0][:7]] for k, v in mydict.items()}
1 голос
/ 04 августа 2020

Это еще один способ сделать это с for l oop.

myresult = {}
for key in mydict:
    myresult[key] = [mydict[key][0][:7]]
0 голосов
/ 04 августа 2020

В качестве расширения к ответу @ Asocia, который работает лучше всего, если местоположение повторяющегося значения известно, можно использовать приведенный ниже параметр, если расположение повторяющихся значений является случайным.

{k: list(set(mydict[k][0][0])) for k in mydict.keys()}
0 голосов
/ 04 августа 2020

Вы можете получить результат по slicing внутреннему массиву.

mydict = {'x': [(['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'])],
 'y': [(['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'], ['08:00  - 18:00 PM'])]}

myresult = {}

for key in mydict:
    myresult[key] = [mydict[key][0][:7]]

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