我知道这个问题已被多次询问过。当我搜索时,我通常会得到与列表中交换元素相关的答案。
我不打算交换列表中的元素,而是将元素从一个位置移动到另一个位置。
示例(移动元素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函数!!!!!!!
答案 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_) )