我有一个列表和一个字符串,如下:
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_list
和demo_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
的值。