【发布时间】:2013-11-25 17:08:40
【问题描述】:
我有一个测试问题,我必须将两个字符串中的字母交织成一个,我使用以下代码完成了:
'abcd' 和 'efghi' -> 'aebfcgdhi'
s1,s2='abcd' ,'efghi'
t=[a+b for a,b in zip(s1, s2) ]
ls1 = len(s1)
ls2 = len(s2)
if ls1 > ls2:
t.extend(s1[ls2:])
elif ls1 < ls2:
t.extend(s2[ls1:])
print ''.join(t)
我首先尝试使用以下方法,这似乎仅在字符串长度相同或 s2 是较长字符串时才有效。
print ''.join([a+b for a,b in zip(s1, s2)]) + max(s1,s2)[min(len(s1),len(s2)):]
我的逻辑哪里出错了?
【问题讨论】:
-
预期输出是什么?
-
@thefourtheye 编辑问题以包含预期输出
-
知道了。请检查我的答案
-
@hcwhsa 我不想使用 itertools,我的问题是如何修改我自己的代码以获得所需的输出,或者是否有可能,以便我能准确理解它是如何工作的。