这似乎是一件容易的事,老实说我不知道问题是什么。我有一个列表,如[0,1,2,3,4,5,6]等,我需要选择和索引,比方说3,输出应该像[4,5,6,3, 0,1,2],这是我的代码
def cut_list(listA, index):
return listA[index+1:] + listA[index] + listA[0:index]
然而listA [index]函数运行不正常并给出错误,但是如果我取出其他部分而只做“return listA [index]”它会输出3
答案 0 :(得分:3)
listA[index]
是标量值,无法与列表连接。你正在做类似的事情:
>>> 3 + []
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'list'
列表只能与其他列表连接,因此解决方案是将listA[index]
简单地更改为列表,并将其作为唯一元素。例如[listA[index]]
:
def cut_list(listA, index):
return listA[index+1:] + [listA[index]] + listA[0:index]
为了使它适用于大多数序列类型,我们可以做一些聪明的切片:
def cut_list(listA, index):
return listA[index+1:] + listA[index:index+1] + listA[0:index]
这是有效的,因为切片x[idx:idx+1]
应该返回与x
相同类型的序列,该序列只包含来自idx'th
的{{1}}元素
x