gpt4 book ai didi

python - 在Python列表中移动元素

转载 作者:行者123 更新时间:2023-11-30 23:04:28 27 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

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

除此之外你做什么取决于你。

关于python - 在Python列表中移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com