Python 切换元素顺序
我还是个新手,想要了解Python的精髓 :) 今天的挑战是找到最符合Python风格的方法来解决以下问题:
将一个字符串中的字母成对交换,比如:
input: 'abcdefgh' output: 'badcfehg'
6 个回答
5
''.join(s[i+1] + s[i] for i in range(0,len(s),2))
是的,我知道用range这个方法不太符合Python的风格,但它很简短,而且我想你应该能明白它的作用,不用我多解释。
6
我个人最喜欢用来处理成对数据的方法:
def pairwise( iterable ):
it = iter(iterable)
return zip(it, it) # zipping the same iterator twice produces pairs
output = ''.join( b+a for a,b in pairwise(input))
13
我会选择:
s="abcdefgh"
print "".join(b+a for a,b in zip(s[::2],s[1::2]))
s[start:end:step] 这个写法会每隔一定的步长取一个字母,zip函数会把这些字母两两配对,接着循环会把它们交换位置,最后的join操作会把这些字母重新组合成一个字符串。