制作其他列表中包含字符串的行列表

Posted

技术标签:

【中文标题】制作其他列表中包含字符串的行列表【英文标题】:Making list of lines that contain string in other list 【发布时间】:2017-08-01 16:17:47 【问题描述】:

我有一个文本文件 Input.txt Input.txt 看起来像这样:

word1 word2 word3 word4 "D:\path\string" word5

单词从一行任意更改到下一行。我有一个包含大量不同字符串的列表(我们称之为 List1),我需要为 Input.txt 中的每一行创建一个新列表,其中“字符串”部分与 List1 中的任何一个元素相同。

我得到的最接近的是这样做:

strings = List1
with open("Input.txt", 'r') as file:
    for line in file:
        if any(s in line for s in strings):
          print(line)

但这只会打印我想要的行(如果我复制它打印的内容,它的格式不正确(例如,它只是将所有行打印为一个字符串而不是按行分隔) - 我可以格式化它正确,但我想找到最有效的方法)。

简而言之,什么是最有效和最惯用的方法来制作包含 List1 中的字符串的每一行的列表(比如说 List2),这样如果我将 List2 写入另一个文本文件,就会有 List2 的一个元素每行?

【问题讨论】:

你想改变'word1 word2 word3 word4 "D:\path\string" word5' 这样列出 list=[word1,word2,...,..] 您的问题不清楚,请更具体地说明您的目标。 我想让 List2 中出现的每一行的内容与 List1 中的内容相同。我也知道如何手动定义列表(list=[word1, etc]),但我需要找到一种自动输入列表元素的方法。因此,以我的代码为例,它将是我第四行代码中提到的每一“行”的列表。 【参考方案1】:

试试这个

strings = []
with open("Input.txt", 'r') as f:
    lines = f.readlines()
    print lines

如果不行试试这个

strings = []
with open("Input.txt", 'r') as f:
    lines = f.read().split(' ')
    print lines

【讨论】:

如果我没记错的话,这只是列出 Input.txt 中的所有行。我要做的是列出 Input.txt 中包含列表中的字符串的行列表(我已经拥有 - List1,正如我的问题中提到的那样)。

以上是关于制作其他列表中包含字符串的行列表的主要内容,如果未能解决你的问题,请参考以下文章

如何处理版本列表中包含的字符串导致的错误,按StrictVersion排序?

pandas使用isna函数和any函数计算返回dataframe中包含缺失值的行索引列表list(index of rows with missing values in dataframe)

pandas使用isna函数和any函数计算返回dataframe中包含缺失值的行索引列表list(index of rows with missing values in dataframe)

如何制作由文件中的行分隔的每个字符串的下拉列表

在JAVA中,键盘输入的字符串中包含的字母、数字和其他字符的个数如何制作?

查找给定字符串中包含的字谜