给定一个非常大的字符串。我想在这样的循环中处理部分字符串:
large_string = "foobar..."
while large_string:
process(large_string.pop(200))
什么是这样做的好而有效的方法?
给定一个非常大的字符串。我想在这样的循环中处理部分字符串:
large_string = "foobar..."
while large_string:
process(large_string.pop(200))
什么是这样做的好而有效的方法?
您可以将字符串包装在 a StringIO
or中BytesIO
并假装它是一个文件。那应该很快。
from cStringIO import StringIO
# or, in Py3/Py2.6+:
#from io import BytesIO, StringIO
s = StringIO(large_string)
while True:
chunk = s.read(200)
if len(chunk) > 0:
process(chunk)
if len(chunk) < 200:
break
您可以将字符串转换为列表。list(string)
并弹出它,或者您可以在切片列表的块中迭代,[]
或者您可以按原样切片字符串并在块中迭代
你可以用切片来做到这一点:
large_string = "foobar..."
while large_string:
process(large_string[-200:])
large_string = large_string[:-200]
要跟进 dm03514 的回答,您可以执行以下操作:
output = ""
ex = "hello"
exList = list(ex)
exList.pop(2)
for letter in exList:
output += letter
print output # Prints 'helo'