如何在Python中进行反向追加?

5

.append函数可以向列表中添加元素。 如何将元素反向添加到列表中?使索引为零的位置是新值,并且旧值向上移动到较高的索引? .append函数的作用:

[a,b,c,d,e]

what I would like.

[e,d,c,b,a]

非常感谢您。

3
我注意到你提出了一些看起来非常像作业的问题... 因此,在回答之前,请告诉我们:你为解决这个问题做了什么?(请注意,这是对原文的翻译,不包含解释或其他额外信息。) - David Wolever
3
我花了15个小时在Google上搜索某些东西。你呢,你今天过得怎么样? - Web Master
3
当然,如果你在搜索“thing”,那么你很可能找不到任何有用的与Python相关的结果 :) 但更严肃地说:将来请查看内置类型的文档页面。例如,搜索“Python list”会得到http://docs.python.org/tutorial/datastructures.html作为最高排名的结果,其中包含你需要的信息。 - David Wolever
好的,我的教练告诉我去谷歌搜索“in”。 - Web Master
如果需要的话,您也可以在完成后反转列表。mylist.reverse()会就地反转列表。 - monkut
8个回答

21

假设你有一个列表 aa = [1, 2, 3]

现在假设你想知道可以对这个列表做哪些操作:

dir(a)

嗯...不知道这个insert是什么意思...

help(a.insert)

插入对象到索引之前,你说?为什么,这听起来很像我想做的事情!如果我想在列表开头插入某些东西,那就是在索引0之。我想要插入什么对象?让我们试试7...

a.insert(0, 7)
print a

哇,看看那个列表开头的7!

简而言之:dir()可以让你看到可用的内容,help()会显示它是如何工作的,然后你可以尝试一下并观察它的功能,或者根据你现在知道的功能名称搜索一些文档。


11

使用deque(双端队列)会更高效。在列表中插入索引0是非常昂贵的,因为每个元素都必须移动,这需要O(N)运行时间,而在deque中,相同的操作是O(1)。

>>> from collections import deque
>>> x = deque()
>>> x.appendleft('a')
>>> x.appendleft('b')
>>> x
deque(['b', 'a'])

6
使用Python的列表insert命令,将0作为位置值插入,将会在列表头部插入该值,从而实现反向插入:
your_list.insert(0, new_item)

5

使用somelist.insert(0, item)item放置在somelist的开头,使所有其他元素向下移动。请注意,对于大型列表,这是一种非常昂贵的操作。如果您将要在序列的两端添加或删除项目,请考虑使用deque


2

您可以做到

your_list=['New item!!']+your_list

但是插入方法同样有效。


2
lst=["a","b","c","d","e","f"]
lst_rev=[]
lst_rev.append(lst[::-1])
print(lst_rev)

作为一个不错的点睛之笔,添加输出! - Serbitar

1
以下是如何以相反的顺序向列表中添加元素的示例:
liste1 = [1,2,3,4,5]
liste2 = list()
for i in liste1:
    liste2.insert(0,i)

0

使用以下代码(假设x是您要添加的内容):

your_list = [x] + your_list

或者:

your_list.insert(0, x)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接