@Tayrus0

Как найти последнее общие значение во всем содержимом списка и получить номер позиции содержимого в списке?

Есть такой список ( кол-во содержимого в нем может меняться):
rows = [('oops', 0, 'new1', 'AgACAgIAAxkBAAISxl78VN0h', 4, 4821, 2654700348373, '111111'),
        ('aaapp', 7000, 'test22222', 'AgACAgIAAxkBAAIVEl78g75SvLP7MlZTBkncHQ', 4, 5429, 7965418332586, '111111')]


Как мне найти последние общие элементы содержимого списка и получить номер позиций этого содержимого? Например: в списке rows есть два кортежа, у этих кортежей есть последние общие элементы '111111', я должен получить порядковый номер кортежей в списке rows, где есть общие элементы. Т.е если я прогоню этот список через скрипт я должен получить 0 и 1.

Пример 2:
rows = [('oops', 0, 'new1', 'AgACAgIAAxkBAAISxl78VN0h', 4, 4821, 2654700348373, '111111'),
        ('aaapp', 7000, 'test22222', 'AgACAgIAAxkBAAIVEl78g75SvLP7MlZTBkncHQ', 4, 5429, 7965418332586, '111111'),
        ('oops', 0, 'new1', 'AgACAgIAAxkBAAISxl78VN0h', 4, 4821, 2654700348373, '22222'),
        ('oops', 0, 'new1', 'AgACAgIAAxkBAAISxl78VN0h', 4, 4821, 2654700348373, '22222'),]


Если я прогоню этот список через скрипт я должен получить 0 и 1 разделение 2 и 3. Т.е скрипт должен разбивать общие элементы на пары. Как такое можно сделать?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 2
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
from itertools import groupby
print(
    [
        (k, list(l))
        for k, l in
        groupby(
            enumerate(rows),
            key=lambda row: row[1][-1]
        )
    ]
)
Ответ написан
aRegius
@aRegius
Python Enthusiast
from collections import defaultdict

value_index_dict = defaultdict(list)
for index, value in enumerate(rows):
      value_index_dict[value[-1]].append(index)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы