def swap_letters(indexes, string):
"""
@indexes should be a list of 2-tuples of indexes to swap, e.g.:
[(0,2), (1,3)]
@string is the input string.
"""
letters = list(string)
for src, dst in indexes:
letter_src = letters[src]
letter_dst = letters[dst]
# Swap case on destination letter if src is upper
if letter_src.isupper():
letter_dst = letter_dst.upper()
letter_src = letter_src.lower()
letters[src], letters[dst] = letter_dst, letter_src
return ''.join(letters)
if __name__ == '__main__':
# This is the example from the OP
indexes = [(0,2), (1,3)]
word = 'Hello'
print swap_letters(indexes, word)
# And a proof of concept
indexes = [(0,-1), (6,4)]
word = 'ActiveSync'
print swap_letters(indexes, word)
这不是小事。它可以通过字符串索引和切片来完成。但你也必须考虑到资本化的因素,并将其保留下来。在
交换第一个与第三个和交换大小写
^{pr2}$交换第二个和第四个
把它变成一根绳子
这并不适用于所有情况,但在这个特定的案例中,这正是您所要求的。在
编辑:使用函数进一步:
我们可以通过索引和切片来交换一个单词中的两个字母。例如,要交换单词“Code”的第一个和最后一个字母,请检查以下代码。在
O/p:-“Eodc”
这个代码可以普遍应用于任何单词,而不管这个单词的长度是多少。也可以通过更改索引号来更改要交换的字母,如下所示:
^{pr2}$O/p:-“文档”
这里有一个不同的方法。你必须手动提交你想交换的职位。因此,您可以在这里更改
swap_seq
的值,它只是字符串索引的序列。在例如,
s[0]+s[1]+s[2]+s[3]+s[4]
是“Hello”,而s[2]+s[3]+s[0]+s[1]+s[4]
是“llHeo”。在输出:
Llheo
编辑:
swapped
现在仅当s
大写时才大写相关问题 更多 >
编程相关推荐