例如,如果我输入一个带有列表和索引的函数,我该如何对其进行编码,以便将列表切成两半并使用循环交换位置
function([0,1,2,3,4], 2)
返回
[3, 4, 2, 0, 1]
我试过了:
def function(list_value):
first_half = list_value[:index]
second_half = list_value[(index+1):]
swapped_sequence = second_half + first_half
swapped_sequence = swapped_sequence.insert(index, index)
return swapped_sequence
答案 0 :(得分:1)
这是一个基本版本,只需使用列表索引并加入3个部分。
def cut(x, i):
try:
return x[i + 1:] + x[i:i + 1] + x[:i]
except IndexError:
return []
答案 1 :(得分:0)
虽然速度不快,但我们可以使用np.roll:
import numpy as np
def function(lst,ind):
roll = np.roll(lst, ind)[:-1]
lst_n = np.insert(roll, ind, ind)
return lst_n
function([0,1,2,3,4,5,6], 2)