使用Python

时间:2018-06-05 11:35:44

标签: python python-3.x loops sorting

我正在寻找一个解决方案来订购我的循环选择。我的问题是,当选择行时,这些行没有排序。所以我想找到所有匹配的行,然后根据下一个关键字找到下一个匹配行。我想要的另一个方面我希望首先找到所有匹配的行,然后在下一个关键字的基础上找到所有匹配的行。最后我想指出,我不想将结果附加到不同的变量中,因为我有很多关键词。

以下是我的问题的一个简单示例:

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 :(得分:1)

只需改变循环的顺序。

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) 

答案 1 :(得分:0)

首先获取具有关键字的所有项目的列表,然后迭代它们。 这是你如何做到这一点:

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)

答案 2 :(得分:0)

快速使用列表理解

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])))