Выберите строки в порядке с Python - PullRequest
0 голосов
/ 05 июня 2018

Я ищу решение, чтобы заказать мой выбор цикла.Моя проблема в том, что, когда выбранные строки, они не отсортированы.Поэтому я хочу найти все совпадающие строки и обработать их после этого найти следующие совпадающие строки на основе следующего ключевого слова.Другой аспект, который я хочу, я хочу сначала найти все совпадающие строки, а затем все соответствующие строки на основе следующего ключевого слова.Наконец, я хотел бы отметить, что я не хочу добавлять результат в разные переменные, потому что у меня много ключевых слов.

Вот простой пример моей проблемы:

key_word=['one', 'two']
list=['one1', 'one2', 'two1', 'two2', 'two3', 'one3']

for i in list:
    for word in key_word:
        if (word in i):
            print (i) 

Мой вывод:

one1
one2
two1
two2
two3
one3

Мой желаемый вывод:

one1
one2
one3
two1
two2
two3

Ответы [ 3 ]

0 голосов
/ 05 июня 2018

Сначала получите список всех элементов, имеющих ключевое слово, а затем переберите их.Вот как вы можете это сделать:

key_word=['one', 'two']
lst=['one1', 'one2', 'two1', 'two2', 'two3', 'one3']


for i in key_word:
    l = [k for k in lst if i in k]

    for word in l:
        print(word)
0 голосов
/ 11 июня 2018

Быстрый с использованием списка

key_word=['one', 'two']
lst=['one1', 'one2', 'two1', 'two2', 'two3', 'one3']

print("\n".join(sorted([x for x in lst if key_word[0] in x or key_word[1] in x])))
0 голосов
/ 05 июня 2018

Просто измените порядок циклов.

key_word=['one', 'two']
lst=['one1', 'one2', 'two1', 'two2', 'two3', 'one3']


for word in key_word:
    for i in lst:
        if (word in i):
            print (i) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...