из них получить словарь со значениями дубликатов {'11123':['fghjjk','ffggh'] ? То есть преобразовать каждый список в словарь и пройтись итерацией? А как это лучше сделать, когда много таких списков?
Непонятно, что должно быть ключом, а что значением в итоговом словаре.
Ключ уникален, соответственно '11123'
Все равно неясно. Вот три списка: [1, 2, 3, 4] [1, 3, 5, 4, 6] [3. 5. 2. 7] Как должен выглядеть результат?
Вот списки [a, 1], [a,2], [b,3]. На выход: { а: [1,2]}
А b:3 там не будет?
Нет, только значения дубликатов
Интересная задача, спасибо. Мне понравилась
я думаю без цикла никак, можно создать список из множеств и используя метод словаря setdefault получить результат
Смотрите в сторону pandas. подобные группировки , в среднем , выходят в пару строк. С производительностью тоже вопросов не должно быть.
Спасибо, но с пандас не знакома
Самой большой проблемой для вас, в таком случае, будет сформировать DataFrame из ваших списков. А сама группировка сводится к groupby https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html По-сути это и есть то, что вам нужно.
Решение с пандасом: from pandas import DataFrame lst = [['ahmed', 10], ['vasya', 30], ['ashot', 10], ['danil', 15]] df = DataFrame(lst, columns=['Name', 'Age']) print(df.groupby('Age')['Name'].apply(list))
Спасибо, ребят большое
lists = [['cat', '1'], ['dog', '2'], ['cat', '3'], ['dog', '4'], ['cat', '5'], ['rabbit', '6']] s = {} for x, y in lists: s.setdefault(x, []) s[x].append(y) print(dict(filter(lambda z: len(z[1]) > 1, s.items())))
Спасибо большое, это работает
Обсуждают сегодня