我想在指定的索引周围交换列表或字符串的两个部分,例如:
([1, 2, 3, 4, 5], 2)
应该返回
[4, 5, 3, 1, 2]
我应该只有一行代码,它适用于字符串,但我得到了
只能将列表(不是“int”)连接到列表
当我尝试使用列表时。
def swap(listOrString, index):
return (listOrString[index + 1:] + listOrString[index] + listOrString[:index])
答案 0 :(得分:5)
这是因为您采用了两个切片和一个索引操作并尝试连接。切片返回子列表,索引返回单个元素。
使中间组件也成为切片,例如listOrString[index:index+1]
,(即使它只是一个元素切片),因此它保留了被切片的类型(成为该类型的一个元素序列:
return listOrString[index + 1:] + listOrString[index:index+1] + listOrString[:index]