#python #list
Вопрос:
Я хотел бы удалить повторяющуюся подстроку из списка строк. *Предполагая, что повторяющаяся подстрока отличается для каждого списка.
Пример:
lst = ['State your favorite fruit: Apple', 'State your favorite fruit: Orange', 'State your favorite fruit: Grapes']
Желаемый результат:
final_lst = ['Apple', 'Orange', 'Grapes']
Правка: Извините, если мой первоначальный вопрос был неясен. Я надеюсь найти уникальные слова из каждого списка строк.
lst1 = ['This is a bag', 'This is a cat', 'This is a dog']
lst2 = ['Favorite drink: Cola', 'Favorite drink: Sprite']
lst3 = ['My name is James', 'My name is Mary Jane', 'My name is Lopez']
Желаемый результат:
final_lst1 = ['bag', 'cat', 'dog']
final_lst2 = ['Cola', 'Sprite']
final_lst3 = ['James', 'Mary Jane', 'Lopez']
Комментарии:
1. Лучший способ сформулировать это может заключаться в том, чтобы сказать, что вы хотите извлечь все названия фруктов. Какова здесь точная постановка проблемы?
2. Знаете ли вы заранее повторяющуюся подстроку, например, определена ли она в переменной? Или это должно быть обнаружено из элементов списка?
3. @MichaelButscher Привет, повторяющаяся подстрока должна быть обнаружена в элементах списка. Спасибо!
4. Всегда ли общая строка является началом строки?
Ответ №1:
Возможно, есть некоторые другие способы сделать это, но этот, приведенный ниже, отлично подходит для этой цели
Итак, ваш список выглядит следующим образом:
lst = ['State your favorite fruit: Apple', 'State your favorite fruit: Orange', 'State your favorite fruit: Grapes']
Теперь разделите все слова в новом списке
seperate_words = (" ".join(lst)).split(" ") #First we join all the sentences of the list
# with a space in between using the "join" method of string.
#Then consequently splitting the list by a space
Наконец, чтобы получить уникальные слова, используйте понимание списка, как показано ниже
unique_words = [word for word in seperate_words if seperate_words.count(word) == 1]
print(unique_words)
Вывод:[«Яблоко», «Апельсин», «Виноград»]
С уважением
Комментарии:
1. Здесь вы можете выделить уникальные слова для любого заданного списка, т. Е. Для списка, в котором повторяющаяся подстрока отличается для каждого списка.
Ответ №2:
Это решение поставленного вопроса:
final_lst = [s.replace('State your favorite fruit: ') for s in lst]
Ответ №3:
Просто используйте понимание списка:
lst = ['State your favorite fruit: Apple', 'State your favorite fruit: Orange', 'State your favorite fruit: Grapes']
final_lst = [s.replace('State your favorite fruit: ', '') for s in lst]
print(final_lst)
Выход:
['Apple', 'Cherry', 'Grapes']
Ответ №4:
вы можете разделить на «:» и получить последний индекс, как показано ниже:
[x.split(":")[-1] for x in lst]
Ответ №5:
Вы можете выполнить итерацию по списку, а затем взять последнее слово из каждой строки:
final_lst = [w.split(" ")[-1] for w in lst]