交换索引为

时间:2015-11-14 11:38:48

标签: python list swap

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

2 个答案:

答案 0 :(得分:0)

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中的所有内容都是引用,也就是说,swap函数交换元素就位

答案 1 :(得分:0)

我把一个快速的函数放在一起,它应该适用于任何值,尽管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_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