Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较列表并从包含其他列表元素的一个列表中获取元素_Python_Python 3.x_List - Fatal编程技术网

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

Python 比较列表并从包含其他列表元素的一个列表中获取元素,python,python-3.x,list,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"] 谢谢你的帮助 注意:这个问题最初涉及从文本文件中读取行,但由于这一部分很琐碎,我选择将其删除。这很简单,坦率地说,一些额外的

我有两张单子,A和B

A = ["string1", "string2"]
B = ["A string1 W", "B string4 Q", "HF string2 W]
我想找到一种方法来比较这两个列表,并从B中获取包含a字符串的元素,然后将这些元素放到另一个文本文件列表中。上述示例将产生:

C = ["A string1 W", "HF string2 W"]
谢谢你的帮助


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

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

# 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循环实现,请发表评论。

我得到了一个“文件\u 2\u行\u包含\u 1”的空列表-我可以在代码中添加一些东西使其工作吗?我知道问题不在于A.txt中的换行符,因为我删除了列表中的换行符(如果A.txt中的字符串不在B.txt中的一行末尾),原始列表中可能有新行符。清理条目否,我确定“文件行”中没有换行符,因为当我打印列表时,我看不到换行符。我使用了“file_2_lines=list(map(lambda s:s.strip(),file_2_lines))”来删除换行符,因为您的换行符对我仍然不起作用,但我使用了以下代码,而不是第六行代码:“file_2_lines_包含_1=[I for e in file_2_lines for I in file_lines if e in I]”。