我有一个测试题,我必须把两个字符串中的字母交织成一个,我用下面的代码来做:
“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是较长的字符串时才有效。在
^{pr2}$我的逻辑哪里出错了?在
要使代码正常工作,只需在
max
函数中使用key
参数或者,可以使用itertools.izip_longest进行迭代,直到两个iterable中最大的一个用完为止。所以,这个解决方案不考虑字符串的长度。在
^{pr2}$输出
编辑:
不使用
itertools
不使用
itertools.izip_longest
:相关问题 更多 >
编程相关推荐