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

时间:2016-10-18 23:23:00

标签: python

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

([1, 2, 3, 4, 5], 2)

应该返回

[4, 5, 3, 1, 2]

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

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

当我尝试使用列表时。

def swap(listOrString, index):

    return (listOrString[index + 1:] + listOrString[index] + listOrString[:index])

1 个答案:

答案 0 :(得分:5)

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

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

return listOrString[index + 1:] + listOrString[index:index+1] + listOrString[:index]