交换字符串中的字符

时间:2019-08-30 04:53:53

标签: python-3.x

在python中,您将如何交换字符串的开头和结尾部分,而将中间字符放在同一位置?例如,如果我有ABCDE,那么结果将是DECAB。

def swap(str1):
    return str1[-1]+str1[1:-1]+str1[:1]
print(swap("Hello"))

有了这个,我只能交换字符串的第一个和最后一个字母。因此,“ Hello”的结果为“ oellH”。

1 个答案:

答案 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
相关问题