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

Usuwanue wszystkich pól o takich samych wartościach w słowniku.
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam np taki słownik:

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

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

nalik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1039
0
Kopiuj
def transpose(d):
    return {v:k for k,v in d.items()}

transpose(transpose(d))

Albo:

Kopiuj
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
X3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 310
0

A jakby to była lista

Kopiuj
d = [{'a':'abc'},{'b':'xxx'), ... , {'z':'xxx')]
X3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 310
0
xenix33 napisał(a):

A jakby to była lista

Kopiuj
d = [{'a':'abc'},{'b':'xxx'}, ... , {'z':'xxx'}]
hurgadion
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: www
  • Postów: 259
0

Hej,
może jakoś tak:

Kopiuj
list({list(x.values())[0]:x for x in d}.values())
X3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 310
0

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

Kopiuj
                out = []
                for i in d:
                    if str(i['url']).strip() not in str(out):
                                 out.append(i)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.