如何在python中获取位置而不是交换列表号

时间:2018-03-24 21:53:44

标签: python

我有这样的数字:

a = [3, 4, 5, 7, 2, 8, 6, 9, 1]

我希望将此号码放在[2, 3, 4, 5, 7, 8, 6, 9, 1]

这样的列表中

4 个答案:

答案 0 :(得分:1)

一种方法是使用list.insertlist.pop

a = [3, 4, 5, 7, 2, 8, 6, 9, 1]

a.insert(0, a.pop(4))

# [2, 3, 4, 5, 7, 8, 6, 9, 1]

这将删除位置4中的项目并将其移动到位置0.请记住,Python中的索引从0开始。

Python Data Structures documentation中可用的列表方法的详细信息。

答案 1 :(得分:0)

您可以使用remove(删除列表中元素的第一个实例)和insert(在您喜欢的任何位置插入元素):

a.remove(2)
a.insert(0, 2)   # 0 means insert at the first position in the list

但是,如果您使用的是remove,请注意,如果您要删除的元素不在列表中,则代码会引发ValueError。因此,如果您不确定某个元素是否在您的列表中,则应在使用remove之前进行检查:

if 2 in a:
    a.remove(2)
    a.insert(0,2)

答案 2 :(得分:0)

我会使用列表索引

> [a[4]]+a[:4]+a[4+1:]
[2, 3, 4, 5, 7, 8, 6, 9, 1]

答案 3 :(得分:0)

除了@jpp answer之外,如果你想在列表中动态获取数字2的索引值,你可以执行以下操作:

a.insert(0, a.pop(a.index(2)))

a.index(2) - 会在列表中找到(第一次出现)第2号的索引(在这种情况下会返回4)

a.pop(4) - 将从列表中删除第4个值并将其返回(返回2)

a.insert(0, 2) - 将值2插入索引0的列表中。