python最有效的子串方法

时间:2013-06-04 04:19:56

标签: python string

假设我们有一个非常大的字符串。我们想在stdout中只显示100个字符。其余的将进入下一行。我的第一个方法是使用索引切片并将startIndex设置为100,依此类推:

while (veryLargeStringLength/100 > 0):
    startIndex = 0
    veryLargeString[startIndex :startIndex+100]
    startIndex += 100
    veryLargeStringLength -= 100

这是最有效的方法吗?还有其他优化方法吗?我会说在这种情况下,对于多线程或多处理是否有任何意义?

由于

2 个答案:

答案 0 :(得分:4)

这样的事情:

n = 100
for i in xrange(0, len(strs), n):
    print strs[i:i+n]

代码的工作版本:

veryLargeStringLength = len(strs)
startIndex = 0                     #this should be before the loop
while veryLargeStringLength > 0:   #use just >0, no need of division
    print veryLargeString[startIndex :startIndex+100]
    startIndex += 100
    veryLargeStringLength -= 100

答案 1 :(得分:0)

您可以使用python内置方法范围(start,stop [,step])来实现此目的。从0开始,在字符串的末尾停止(即字符串的长度)并以100的步长遍历

for group_of_char in [veryLargeString[i:i+100] for i in range(0, len(veryLargeString), 100)]:
    print group_of_char

或者更好地将此逻辑转换为方法并调用为适合

def slice_string_in_n_size_pieces(input_string, n_size):
    return [input_string[i:i+n_size] for i in range(0, len(input_string), n_size)]