从集合中获取值或索引号

时间:2019-06-07 19:21:11

标签: python

我有以下两个列表:

FB6123260

我正在使用以下代码来检查rm -rf ~/Library/Developer/Xcode/DerivedData 中是否确实有list_1 = ['ABC', 'DEF', 'EFG'] list_2 = ['TESTABC', 'TESTDWQ', 'TESTEFG', 'TEST123', 'TEST345'] 中的内容:

list_1

现在它可以正常工作了,它可以告诉我它的发现:

list_2

但是它不能给我全部价值,我正试图将其输出:

check_list = set([item for item in list_1 for things in list_2 if item in things])

是否有一种获取索引的方法,甚至可以在发现某些内容时更好地将其打印出来?

2 个答案:

答案 0 :(得分:1)

只需将item替换为things

set([things for item in list_1 for things in list_2 if item in things])

将其减少到一个循环

import re
[i for i in list_2 if re.match("\w*("+'|'.join(list_1)+")$",i)]

答案 1 :(得分:0)

使用re解决我的问题:

l1 = ['ABC', 'DEF', 'EFG']
l2 = '''TESTABC
TESTDWQ
TESTEFG
TEST123
TEST345'''

import re

s = re.findall('|'.join(f'(?:^.*{i}.*)' for i in l1), l2, flags=re.M)
print(s)

打印:

['TESTABC', 'TESTEFG']