围绕字符python交换列表/字符串

Jet*_*lex 3 python

我想在指定的索引周围交换列表或字符串的两个部分,例如:

([1, 2, 3, 4, 5], 2)
Run Code Online (Sandbox Code Playgroud)

应该回来

[4, 5, 3, 1, 2]
Run Code Online (Sandbox Code Playgroud)

我只应该有一行代码,它适用于字符串,但我得到

只能将列表(不是"int")连接到列表

当我尝试使用列表时.

def swap(listOrString, index):

    return (listOrString[index + 1:] + listOrString[index] + listOrString[:index])
Run Code Online (Sandbox Code Playgroud)

Sha*_*ger 5

这是因为您采用了两个切片和一个索引操作并尝试连接.切片返回子列表,索引返回单个元素.

使中间组件也成为切片,例如listOrString[index:index+1],(即使它只是一个元素切片),因此它保留了切片的类型(成为该类型的一个元素序列:

return listOrString[index + 1:] + listOrString[index:index+1] + listOrString[:index]
Run Code Online (Sandbox Code Playgroud)