Python 用索引交换列表

Python 用索引交换列表,python,list,swap,Python,List,Swap,我只想问一下,如何将索引处的列表与其后的列表交换,如果索引处的列表位于底部,则将其与顶部交换。 因此索引将与列表的位置交换位置,例如Normal=[1,2,3,4],1的索引将变为=[1,3,2,4]。将2和3个互换位置和指数设为3将使[4,2,3,1] def swap(lst, swap_index): try: next_index = (swap_index + 1) % len(lst) lst[swap_index], lst[next_ind

我只想问一下,如何将索引处的列表与其后的列表交换,如果索引处的列表位于底部,则将其与顶部交换。
因此索引将与列表的位置交换位置,例如Normal=[1,2,3,4],1的索引将变为=[1,3,2,4]。将2和3个互换位置和指数设为3将使[4,2,3,1]

def swap(lst, swap_index):
    try:
        next_index = (swap_index + 1) % len(lst)
        lst[swap_index], lst[next_index] = lst[next_index], lst[swap_index]
    except IndexError:
        print "index out of range"
lst = [1,2,3,4]
swap_index = 4
swap(lst,swap_index)
print lst

请注意,Python中的所有内容都是引用,也就是说,
交换
函数交换元素已就位

我创建了一个快速函数,该函数可以处理任何值,尽管Hootings方法可能更好

def itatchi_swap(x, n):
    x_len = len(x)
    if not 0 <= n < x_len:
        return x
    elif n == x_len - 1:
        return [x[-1]] + x[1:-1] + [x[0]]
    else:
        return x[:n] + [x[n+1]] + [x[n]] + x[n+2:]
def itatchi_交换(x,n):
x_len=len(x)

如果不是0,您能详细描述交换示例列表的过程吗?normal=[1,2,3,4]和1的索引将变为mutated=[1,3,2,4]用以下内容交换索引number@itachi123请编辑您的问题并在此处添加其他信息。(不是在评论中)我该如何使它变为易变的,就像它不会返回任何东西一样,只是对它进行变异,并且可以处理列表中的任何长度,就像一个20个数字的列表一样。对于这个问题,它应该这样做,至于第一点,我明天要玩一玩,不太清楚如何处理列表:因为它已过期,所以不会返回任何内容
def itatchi_swap(x, n):
    x_len = len(x)
    if 0 <= n < x_len:
        if n == x_len - 1:
            v = x[0]
            x[0] = x[-1]
            x[-1] = v
        else:
            v = x[n]
            x[n] = x[n+1]
            x[n+1] = v