如何通过向现有列表添加字符串来创建新列表,而不改变python中的现有列表?



我有一个列表和一个字符串,如下:

demo_list = [ 'rishi', 'john', 'mohan', 'sony' ]
demo_str = 'samsung' 

我想通过将demo_str插入demo_list而不修改demo_list来创建一个新列表。我期望的输出是:

new_list = [ 'rishi', 'john', 'mohan', 'sony', 'samsung' ]
demo_list = [ 'rishi', 'john', 'mohan', 'sony' ] 

注意,demo_list是原样的,new_list是通过连接demo_list和demo_str创建的。我可以使用'append'来做到这一点,但在这样做的同时,demo_list会被修改。我的尝试如下:

new_list = demo_list.append(demo_str)

然而,它没有工作,因为append不返回任何东西,也,demo_list被修改,我不想。

你可以这样做

new_list = demo_list + [demo_str]

当您执行new_list = demo_list时,对象new_listdemo_list指向同一列表,修改其中一个有效地意味着修改另一个,因为它们本质上是相同的对象。

您首先需要使用copy()方法创建列表的副本,然后使用append作为:

demo_list = [ 'rishi', 'john', 'mohan', 'sony' ]
new_list = demo_list.copy()
new_list.append('samsung')
print(new_list)

此外,当您执行new_list = demo_list.append(demo_str)时,由于append()在适当的位置工作,该方法的返回值是None,因此new_list被分配为None的值。

最新更新