【问题标题】:Select lines in order with Python使用Python按顺序选择行
【发布时间】:2018-06-05 11:35:43
【问题描述】:

我正在寻找一种解决方案来订购我的循环选择。 My problem is that when is select the rows, these aren't sorted.所以我想找到所有匹配的行并处理它们,然后根据下一个关键词找到下一个匹配的行。我想要的另一个方面是我想首先找到所有匹配的行,然后基于下一个关键词找到所有匹配的行。最后我想指出,我不想将结果附加到不同的变量中,因为我有很多关键字。

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

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

【问题讨论】:

    标签: python python-3.x loops sorting


    【解决方案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) 
    

    【讨论】:

    • 哦,答案太简单了,谢谢你的帮助!
    【解决方案2】:

    首先获取所有具有关键字的项目的列表,然后对其进行迭代。 以下是您可以执行此操作的方法:

    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)
    

    【讨论】:

    • 哦,答案太简单了,谢谢你的帮助!
    【解决方案3】:

    快速使用列表理解

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多