如何在Python中比较列表元素

时间:2018-09-26 07:29:40

标签: python list

这里我有两个列表:

list1 = ['2C535EB58F19B58' , '7B89D9071EB531B143594FF909BAC846' , '0509']

list2 = ['1641AB0C9C5B8867' , '0098968C' , '509']

我需要将list2内的元素与list1元素进行比较。

在比较之后,我希望输出为:

509

因为0509中存在509。

我该如何实现?正则表达式可以帮助我吗?

5 个答案:

答案 0 :(得分:2)

尝试一下: 在这里,我们正在检查list2中的元素是否是list1中元素的子字符串。

list1 = ['2C535EB58F19B58' , '7B89D9071EB531B143594FF909BAC846' , '0509']

list2 = ['1641AB0C9C5B8867' , '0098968C' , '509']

for i, j in zip(list1, list2):
    if j in i:
        print(j)

将添加到列表中的一个班轮:

print( [j for i, j in zip(list1, list2) if j in i])

可能会有更简单更好的答案。如果有帮助,您可以选择它。

答案 1 :(得分:0)

您可以执行以下操作:

common_elements = []
for x in list1:
    for y in list2:
        if y in x:
            common_elements.append(y)

common_elements将包含您需要的元素。

答案 2 :(得分:0)

正如BearBrown在评论中所建议的那样,有一种简单的方法可以实现您的目标。完全没有理由考虑正则表达式(in运算符足够强大)。

[x for x in list2 if any(y for y in list1 if x in y)]

如果您要查找列表2中的每个字符串x的子字符串,请在列表2中查找每个字符串y,最后将每个匹配的子字符串x保存在新列表中。

答案 3 :(得分:0)

for x in list2:
    for y in list1:
        if x in y:
            print x #or whatever

嵌套for循环,我认为这是一种简单的方法,但是我敢肯定有更好的方法

答案 4 :(得分:-1)

您可以简单地在python中使用in操作来检查一个字符串是否在另一字符串中。

解决问题的最简单方法是

[y for y in list2 if any(y in x for x in list1)]