Загрузка...

It is necessary to find duplicates in a dictionary of a nested array

Thread in Python created by Reverlight Aug 16, 2020. 162 views

  1. Reverlight
    Reverlight Topic starter Aug 16, 2020 Пью чай 27 Jul 23, 2020
    Основная проблема в том, что я могу сделать алгоритм для одного элемента который повторяется, но не могу придумать как это реализовать для пар нескольких.

    Вот массив:
    {"Code":[{"price":30, "value":100},{"price":30, "value":100}, {"price":15, "value":75},{"price":15, "value":75}, {"price":5, "value":10}]}
    [IMG]
    Задача превратить его в это {"Code":[{"price":30, "value":100, "number":2}, {"price":15, "value":75, "number":2}, {"price":5, "value":10, "number":1}]}
    [IMG]
    Найти все дубликаты по прайсу и оставить один экземпляр и number (количество) будет соответствовать кол-ву дупликатов.
    Буду рад совету как подступиться к этой задаче. Головую ломаю не могу придумать. Заранее спасибо)
     
  2. oriole
    oriole Aug 16, 2020 был(а) давно
    Python
    if  a['Code'][0] == a['Code'][1]
     
    1. oriole
      oriole, a это имя словаря
    2. Reverlight Topic starter
      oriole, наверное неправильно объяснил. Сори. Я понимаю как это сделать просто пробив все по индексу и сравнив. Мне нужно алгоритм который при случайных значениях и кол-ве например 1000 элементов в таком массиве удалит дубликаты. То что я скинул выше это структура.
  3. id566347758
    Скорость важна?
     
    1. Reverlight Topic starter
      id566347758, не сильно, главное чтобы работало)
    2. id566347758
      Reverlight, можешь скинуть свой вариант на один элемент
    3. Reverlight Topic starter
      id566347758, да все, я уже придумал как написать код)
  4. Decoy4298
    Decoy4298 Aug 16, 2020 217 Feb 18, 2020
    Code
    d['Code'] = [dict(t) for t in {tuple(d.items()) for d in d['Code']}]
    The post was merged to previous Aug 16, 2020
    Python

    def filter_list(l):
    seen = []
    for d in l:
    t = tuple(d.items())
    if t not in seen:
    seen.append(t)

    return [dict(i) for i in seen]

    d['Code'] = filter_list(d['Code'])
    The post was merged to previous Aug 16, 2020
    * Если важен порядок элементов
     
Top
Loading...