比较列表并从一个列表中获取包含其他列表元素的元素

时间:2017-08-08 18:22:05

标签: python python-3.x list

我有两个名单,A和B.

A = ["string1", "string2"]
B = ["A string1 W", "B string4 Q", "HF string2 W]

我想找到一种比较两个列表并从B中获取包含A字符串的元素的方法,并将这些元素放在另一个文本文件列表中。上面的例子将产生:

C = ["A string1 W", "HF string2 W"]

感谢您提供任何帮助!

注意:问题最初涉及从文本文件中读取行,但由于该部分很简单,我选择将其删除。

1 个答案:

答案 0 :(得分:1)

这很简单,坦率地说,一些额外的谷歌搜索应该让你在那里。但是你可以使用

这么简洁
# read lines as a list
file_1_lines = open('/path/to/file1').readlines()
file_2_lines = open('/path/to/file2').readlines()

# get the containing lines with a list comp
file_2_lines_containing_1 = [file_2_lines[i] for i in range(len(file_2_lines)) if file_1_lines[i] in file_2_lines[i]]

# save
with open('/path/to/newfile') as f:
    json.dump(file_2_lines_containing_1,f)

如果您希望更简单的for循环实现,请注释。