如何移动元素

时间:2013-11-05 05:17:41

标签: python element

我知道这个问题已被多次询问过。当我搜索时,我通常会得到与列表中交换元素相关的答案。

我不打算交换列表中的元素,而是将元素从一个位置移动到另一个位置。

示例(移动元素0:

[1,2,3,4,5]

输出:

[2,3,1,4,5]

示例(移动元素2):

[1,2,3,4,5]

输出:

[1,2,4,5,3]

是否有内置的python函数可以让我这样做?

P.S我不是要求你们这些人告诉我如何做到这一点......我要求python中是否有一个inbult函数!!!!!!!

2 个答案:

答案 0 :(得分:0)

从您的问题来看,您所寻找的精确功能并不完全清楚,因此这里有一些功能可以实现您正在寻找的任何转换。

这是一个函数,可以在列表中的位置x处交换位置y的值,反之亦然。

def swap(mylist, x, y):
    """Swaps position x for position y in a list"""
    swap1 = mylist[x]
    swap2 = mylist[y]
    mylist[y] = swap1
    mylist[x] = swap2
    return mylist

这是一个将位置x,y位置的值向前移动的函数。

def moveforward(mylist, x, y):
    """"Function moves the value at position x, y positions forward, keeping x in its     original position"""
    move1 = mylist[x]
    mylist[x + y] = move1
    return mylist

这是一个函数,用于将每个值从x向前旋转一个值,将列表末尾的值移动到x。

def rotate(mylist, x):
     """Rotates all values from x onwards one value forward, moving the end of the list to x."""

    replace = x + 1
    while replace < len(mylist):
        mylist[replace] = mylist[replace - 1]
        replace += 1

    mylist[x] = mylist[replace - 1]

    return mylist

最后:

def rotateback(mylist, x, y):
    """Rotates every value beyond x one back and places value mylist[x] at position mylist[y]""".

    xx = mylist[x]

    while x < y:
        mylist[x] = mylist[x + 1]
        x += 1

    mylist[y] = xx


    return mylist

答案 1 :(得分:0)

这条线上的东西可能是:

def move (iter, from_, to):
    iter.insert (to, iter.pop (from_) )