我有一个txt文件中有400万个单词的列表,我想添加到列表中.我有两个选择:
l=[line for line in open(wordlist)]
Run Code Online (Sandbox Code Playgroud)
要么:
wordlist = file.readlines()
Run Code Online (Sandbox Code Playgroud)
readlines()似乎要快得多,我猜这是因为数据一次性读入内存.第一个选项对于节省内存会更好,因为它一次读取一行,这是真的吗?readlines()在复制时是否使用任何类型的缓冲区?一般哪种情况最好用?
两个选项都将整个内容读入一个大的列表中.第一个选项较慢,因为您将循环委托给Python字节码.如果你想用文件中的所有行创建一个大的列表,那么没有理由在这里使用列表推导.
我没有使用任何.循环遍历文件并在循环时处理行:
with open(wordlist) as fileobj:
for line in fileobj:
# do something with this line only.
Run Code Online (Sandbox Code Playgroud)
通常不需要将整个未处理的文件数据保存在内存中.
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |