Объединение элементов в списке по заданному условиюPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Объединение элементов в списке по заданному условию

Сообщение Anonymous »

Предположим, у меня есть ['A B', 'BC', 'X Y', 'C D', 'Y Z', 'DE', 'C G']... p>
Если второе слово в каждом элементе списка совпадает с первым словом в любых других элементах списка, их следует объединить в один элемент. Порядок также имеет значение.

Код: Выделить всё

['A B C D E G', 'X Y Z']
должен быть конечным продуктом.
Буквы не образуют цикл, т. е. ['A B', 'BC', 'CA'] это невозможно.
Что касается того, почему G был добавлен в конце, предположим, что мы находимся в позиции «AB C» и видим «C D»< /код>. И далее в списке у нас есть «C G». Мы добавляем «C D», так как он идет первым, поэтому у нас есть «A B C D», а затем, если есть «DE» , мы объединяем его с «AB C D E». код>. Теперь в конце «цепочки» мы добавляем «C G», и у нас получается «AB C D E G». Если бы было «B H», поскольку B идет первым, то это было бы «AB C D E H G».
Поскольку порядок имеет значение , ['A B', 'CA'] по-прежнему остается ['A B', 'CA'], поскольку B не подключается к C.
Другой пример:
Если у нас есть ['A B', 'AC'], затем на шаге 1 у нас есть просто A B, а затем мы видим A C и объединяем его с A B, и у нас есть A B C >.
Я пробовал много вещей, например разбивать каждый элемент на два списка, затем индексировать, удалять и т. д. Это слишком сложно, и я чувствую, что должен быть более интуитивный способ решить это на Python. Увы, я не могу этого понять.

Подробнее здесь: https://stackoverflow.com/questions/661 ... -condition
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»