移动Python列表中的元素

2024-04-25 23:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个整数列表;它包含整数27,但我们不知道它的索引。你知道吗

我们必须找到索引,然后将其与后面的项交换。如果27的索引是最后一个元素(list[-1]),那么我们将27与第一个元素交换。你知道吗

my_list = [1, 2, 3, 4, 27] # original
my_list = [27, 2, 3, 4, 1] # result

我知道当27不是最后一个元素时如何交换它,但是我不知道如何像我展示的示例中那样用第一个元素交换27。你知道吗


Tags: 元素示例列表my整数resultlistoriginal
1条回答
网友
1楼 · 发布于 2024-04-25 23:41:18

一旦您要查找的数字始终存在于列表中,只需使用模进行索引和交换:

my_list = [1, 2, 3, 4, 27]
def swap(l,n):
    ln = len(l)
    ind = my_list.index(n)
    l[ind], l[(ind + 1)% ln] = l[(ind + 1) % ln], l[ind]

使用% ln只是意味着我们绕过去,所以当ind = 5如您的示例所示(4 + 1) % 5将为0

输出:

In [45]: my_list = [1, 2, 3, 4, 27]

In [46]: swap(my_list, 27)

In [47]: my_list
Out[47]: [27, 2, 3, 4, 1]

In [48]: swap(my_list, 4)

In [49]: my_list
Out[49]: [27, 2, 3, 1, 4]

您可能需要处理n不存在的情况:

def swap(l,n):
    ln = len(l)
    try:
        ind = my_list.index(n)
        l[ind], l[(ind + 1)% ln] = l[(ind + 1) % ln], l[ind]
    except IndexError:
        pass

你在家里干什么取决于你自己。你知道吗

相关问题 更多 >