Python 切换元素顺序

2 投票
6 回答
1628 浏览
提问于 2025-04-15 14:21

我还是个新手,想要了解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操作会把这些字母重新组合成一个字符串。

撰写回答