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