制作其他列表中包含字符串的行列表
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)