在python中,您将如何交换字符串的开头和结尾部分,而将中间字符放在同一位置?例如,如果我有ABCDE,那么结果将是DECAB。
def swap(str1):
return str1[-1]+str1[1:-1]+str1[:1]
print(swap("Hello"))
有了这个,我只能交换字符串的第一个和最后一个字母。因此,“ Hello”的结果为“ oellH”。
答案 0 :(得分:-1)
您可以使用下标//
获得中间字符的索引:
5 //2
# 2
因此,您可以这样更改代码:
def swap(str1):
middle = len(str1) // 2
return str1[middle+1:] + str1[middle] + str1[:middle]
print(swap("ABCDE"))
# DECAB
请注意,这仅适用于字符数为奇数的字符串。我们可以修改函数以处理偶数个字符的字符串,在这种情况下只需交换两个部分:
def swap(str1):
middle = len(str1) // 2
if len(str1) % 2 == 0:
# even length
return str1[middle:] + str1[:middle]
else:
# odd length
return str1[middle+1:] + str1[middle] + str1[:middle]
print(swap("ABCDE"))
# DECAB
print(swap("ABCDEF"))
# DEFABC