python list.append() 如何在列表名后引用变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python list.append() 如何在列表名后引用变量相关的知识,希望对你有一定的参考价值。

list_1 = []
list_2 = []
list_3 = []

for i in range(1,4)
list_(变量1-3).append(1)

有3个列表 现在我想让这个循环分别往这3个列表里添加一个数据
我试过list_%s.append(1) % i ’list_%s.append(1)’ % i 但是都报错了

--help!!!!!!

你可以把这 3 个 list 放到一个 list 中:

list_1 = []
list_2 = []
list_3 = []
lists = [list_1, list_2, list_3]
for i in range(1,4):
    lists[i-1].append(1)  # i-1 是因为 list 的索引是从 0 开始的

参考技术A 直接赋值就可以了。
a='a':1,'b':[2]
a['c']=3
(此时a
=
'a':1,'b':[2],'c':3)
a['b'].append(4)
(此时a
=
'a':1,'b':[2,4],'c':3)
a['b']对应的是一个数组[2]所以有append。dict是字典,不需要增加而是直接赋值,相当于给字典添加一个定义

允许Python list append方法返回新列表

我想做这样的事情:

myList = [10,20,30]
yourList = myList.append (40)

不幸的是,list append不会返回修改后的列表。

那么,我怎样才能让append返回新列表呢?

答案

不要使用追加而是连接:

yourList = myList + [40]

这会返回一个新列表; myList不会受到影响。如果你需要让myList受影响,或者使用.append()无论如何,然后分配yourList(qartxswpoi的副本)。

另一答案

在python 3中,您可以通过解压旧的并添加新元素来创建新列表:

myList

当你这样做时:

a = [1,2,3]
b = [*a,4] // b = [1,2,3,4] 

你实际上有3个列表。

另一答案

myList + [40] 是内置的,因此无法更改。但如果你愿意使用list.append以外的东西,你可以试试append

+

当然,这样做的缺点是创建了一个比In [106]: myList = [10,20,30] In [107]: yourList = myList + [40] In [108]: print myList [10, 20, 30] In [109]: print yourList [10, 20, 30, 40] 花费更多时间的新列表

希望这可以帮助

另一答案

您可以子类化内置列表类型并重新定义'append'方法。或者甚至更好,创建一个新的,它将做你想要它做的事情。下面是重新定义的'append'方法的代码。

append

希望有所帮助。

另一答案

尝试使用#!/usr/bin/env python class MyList(list): def append(self, element): return MyList(self + [element]) def main(): l = MyList() l1 = l.append(1) l2 = l1.append(2) l3 = l2.append(3) print "Original list: %s, type %s" % (l, l.__class__.__name__) print "List 1: %s, type %s" % (l1, l1.__class__.__name__) print "List 2: %s, type %s" % (l2, l2.__class__.__name__) print "List 3: %s, type %s" % (l3, l3.__class__.__name__) if __name__ == '__main__': main() 。这会将生成器作为序列返回,而不是分配新列表。本质上,它返回第一个iterable中的所有元素,直到它耗尽,然后进入下一个iterable,直到所有的iterables都用完为止。

另一答案

只是为了扩展Storstamp的答案

你只需要做myList.append(40)

它会将其附加到原始列表,现在您可以返回包含原始列表的变量。

如果您正在处理非常大的列表,那么这是可行的方法。

另一答案

你只需要做myList.append(40)

它会将其附加到原始列表,而不是返回新列表。

以上是关于python list.append() 如何在列表名后引用变量的主要内容,如果未能解决你的问题,请参考以下文章

关于python中list的加和

LIST.append(1) 和 LIST = LIST + [1] (Python) 有啥区别

python中列表增加元素的方法

python中的list.append(another_list) vs list.append(another_list[:])? [复制]

python3 list append list

Python list-append()方法