Usuwanue wszystkich pól o takich samych wartościach w słowniku.

Odpowiedz Nowy wątek
2018-08-09 20:54
Pijany Szczur
0

Mam np taki słownik:

d = {'a':'abc','b':'xxx', ... , 'z':'xxx')}

Jak usunąć wszystkie pola o wartościach 'xxx' pozostawiając jedno.

Pozostało 580 znaków

2018-08-09 21:16
0
def transpose(d):
    return {v:k for k,v in d.items()}
 
transpose(transpose(d))

Albo:

def remove_duplicate_values(d):
    unique_dict = {}
    for k,v in d.items():
        if v not in unique_dict.values():
            unique_dict[k] = v
    return unique_dict
edytowany 1x, ostatnio: nalik, 2018-08-09 21:17

Pozostało 580 znaków

2018-08-09 22:07
0

A jakby to była lista

d = [{'a':'abc'},{'b':'xxx'), ... , {'z':'xxx')]
edytowany 1x, ostatnio: xenix33, 2018-08-09 23:26

Pozostało 580 znaków

2018-08-09 23:28
0
xenix33 napisał(a):

A jakby to była lista

d = [{'a':'abc'},{'b':'xxx'}, ... , {'z':'xxx'}]
edytowany 1x, ostatnio: xenix33, 2018-08-09 23:28

Pozostało 580 znaków

2018-08-10 09:56
0

Hej,
może jakoś tak:

list({list(x.values())[0]:x for x in d}.values())
PS. chociaż w sumie po jakiego grzyba tworzyć listę słowników jednoelementowych... :) - hurgadion 2018-08-10 13:44

Pozostało 580 znaków

2018-08-11 12:37
0

To nic nie daje. Zrobiłem to tak i działa:

                out = []
                for i in d:
                    if str(i['url']).strip() not in str(out):
                                 out.append(i)
 
edytowany 1x, ostatnio: xenix33, 2018-08-11 12:38

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0