包含用于比较两个列表中的元素的操作

时间:2013-12-11 11:13:14

标签: python list

如何比较包含操作的两个字符串?我尝试使用 运算符而没有成功

list_1=['check value 1','check value 2']

list_2=['12312 check value 1 ','234 check value 2']

for ele in list_1:
    if ele in list_2:
        print 'element present'
    else:
        print 'abscent'

结果

abscent
abscent

我知道我们可以使用list_2中的另一个循环和 中的所有元素来比较它们。我很好奇是否有更好的方法。

2 个答案:

答案 0 :(得分:5)

您需要针对list_2中的每个元素进行测试;使用列表中的成员资格要求整个字符串出现在列表中。

for partial in list_1:
    if any(partial in value for value in list_2):
        print 'element present'
    else:
        print 'absent'

此处any() function与生成器表达式相结合,一旦找到匹配项,至少停止搜索。

答案 1 :(得分:1)

您的代码只需稍加改动: - )

list_1=['check value 1','check value 2']

list_2=['12312 check value 1 ','234 check value 2']

for ele in list_1:
    for list2_ele in list_2:
        if ele in list2_ele:
            print 'element present'
        else:
            print 'absent'

你只需要第二个for循环: - )