【发布时间】:2011-11-18 18:46:02
【问题描述】:
你有字符串 “啊啊啊” “bbbb” “cccc” "dddd"
现在你要生成字符串:
"abcdabcdabcdabcdabcd"
最快的方法是什么?
PS。这是一个非常简化的例子。我真的需要从现有的较小字符串中生成新字符串。
【问题讨论】:
-
字符串可以有不同的长度吗?如果是这样,应该怎么办?
你有字符串 “啊啊啊” “bbbb” “cccc” "dddd"
现在你要生成字符串:
"abcdabcdabcdabcdabcd"
最快的方法是什么?
PS。这是一个非常简化的例子。我真的需要从现有的较小字符串中生成新字符串。
【问题讨论】:
使用来自itertools library 的 izip_longest,以及来自同一个库的 flatten 配方。
from itertools import izip_longest, chain
def flatten(listOfLists):
"Flatten one level of nesting"
return chain.from_iterable(listOfLists)
result = ''.join(flatten(izip_longest("aaaaa", "bbbbb", "ccc", "dddd", fillvalue='')))
【讨论】:
string1 = "aaaaaaaaa"
string2 = "bbbbbbbbb"
string3 = "ccccccccc"
string4 = "ddddddddd"
new_string = ""
for i in range(0,len(string1)):
new_string = new_string+string1[i]+string2[i]+string3[i]+string4[i]
print (new_string)
结果:
abcdabcdabcdabcdabcdabcdabcdabcdabcd
【讨论】: