Я видел вчера опубликованный вопрос о том, как такой список:
my_list = ["lol hi there", "hi", "i like", "i like apples", "goodbye"]
можно преобразовать в:
my_list = ["lol hi there", "i like apples", "goodbye"]
, где такие строки, как "hi"
и "i like"
удаляются из my_list
, потому что "hi"
и "i like"
находятся в строках "lol hi there"
и "i like apples"
соответственно. Они удаляются из списка исключительно из-за их появления в любой другой строке, найденной в списке, независимо от индекса в списке или положения в строке.
Другой пример: где:
my_list1 = ["hello", "he", "go", "goodbye", "good", ]
будет преобразовано в:
my_list1 = ["hello", "goodbye"]
из-за повторения "he"
в "hello"
и "go"
, а также "good"
в "goodbye"
.
Я попытался использовать для этого следующий метод:
import re
my_list = ["lol hi there", "hi", "i like", "i like apples", "goodbye"]
for x in my_list:
for y in my_list:
if x != y:
if len(x) < len(y):
if re.search(x, y):
my_list.pop(my_list.index(x))
else:
if re.search(y, x):
my_list.pop(my_list.index(y))
print(my_list)
, который вернул мне то, что я хотел. Пользователь удалил свой вопрос, но я хочу знать более краткий способ решения этой проблемы. Может ли кто-нибудь помочь мне?