【发布时间】:2016-10-22 22:12:16
【问题描述】:
在 python 中,我可以轻松地将文件逐行读取到一个集合中,只需使用:
file = open("filename.txt", 'r')
content = set(file)
集合中的每个元素都由实际行和尾随换行符组成。
现在我有一个多行的字符串,我想通过使用正常的集合操作来比较它的内容。
有什么方法可以将字符串转换为set,就像它还包含换行符一样?
编辑:
"In Python, how do I split a string and keep the separators?" 的问题处理了类似的问题,但答案并不容易被其他用例采用。
import re
content = re.split("(\n)", string)
没有预期的效果。
【问题讨论】:
-
你确定这是你想要的吗?编写 file.read().split('\n') 并将其与您的字符串进行比较会更容易吗?
-
大多数时候正确的做法是忽略空白,你可以这样做
set(line.strip() for line in file) -
@xenteros 实际上不是,因为那里的答案对于其他用例不是很便携。我在问题的底部添加了一个声明。