新对象将不会追加到列表中

时间:2019-06-23 02:49:08

标签: python list append

我创建了两个名为dogs_listcats_list的列表,然后创建了名为animals_list的第三个列表。然后,我尝试使用dogs_list.append('german shepards')将另一个对象附加到dogs_list上。在将德国谢泼德附加到dogs_list之后,我假设列表将像 [['Karl', 'sugar', violet', 'tark', 'wilson', 'versace', 'german shepard']] 但是相反 [['Karl', 'sugar', violet', 'tark', 'wilson', 'versace']]

我在做什么错?

我尝试更改命令以扩展和插入,但是没有任何变化。

cats_list= ['karl', 'sugar', 'violet']
dogs_list = ['tark', 'wilson', 'varsace']
animals_list = [cats_list + dogs_list]
print(animals_list)
dogs_list.append('german shepard')
print(animals_list)

预期: [['卡尔','糖',紫罗兰','塔克','威尔逊','范思哲','德国谢泼德']]

结果: [['卡尔','糖',紫罗兰','暗','威尔逊','范思哲']]

4 个答案:

答案 0 :(得分:4)

用于构造+的{​​{1}}操作在animals_listcats_list中创建元素的副本。 dogs_list调用仅更改append,而不更改dogs_list

答案 1 :(得分:0)

1)。将german_shepard添加到dog_list之后,您还必须修改animal_list。我已经修改了您的代码以获得正确的结果:-

cats_list= ['karl', 'sugar', 'violet']
dogs_list = ['tark', 'wilson', 'varsace']
animals_list = [cats_list + dogs_list]
print(animals_list)
dogs_list.append('german shepard')

animals_list = [cats_list + dogs_list]

print(animals_list)

答案 2 :(得分:0)

这是外行获取结果的方法

cats_list= ['karl', 'sugar', 'violet']
dogs_list = ['tark', 'wilson', 'varsace']
animals_list = [cats_list + dogs_list]
print(animals_list)
dogs_list.append('german shepard')
animals_list.append('german shepard')
print(animals_list)

但是您的解决方案是

cats_list= ['karl', 'sugar', 'violet']
dogs_list = ['tark', 'wilson', 'varsace']
animals_list =  dogs_list
for i in cats_list:
    animals_list.append(i)
print(animals_list)
dogs_list.append('german shepard')
print(animals_list)

这不会创建任何副本,您会满意的。这样您将获得想要的结果。

enter image description here

答案 3 :(得分:0)

选中此项,如果我没弄错,首先创建猫列表,然后创建狗列表,然后创建动物列表。之后,您将打印动物列表。然后,将german shepard附加到狗列表中。它不会按照您的预期输出显示。如果您希望这样的预期输出:-Expected: [['Karl', 'sugar', violet', 'tark', 'wilson', 'versace', 'german shepard']],则需要在代码中进行一些小的更改。如下。

解决方案(1):-尝试在创建狗列表之后将german shepard附加到狗列表中。

cats_list= ['karl', 'sugar', 'violet']
dogs_list = ['tark', 'wilson', 'varsace']
dogs_list.append('german shepard')
animals_list = [cats_list + dogs_list]
print(animals_list)

# Output :- [['Karl', 'sugar', violet', 'tark', 'wilson', 'versace', 'german shepard']]

解决方案(2):-您可以将german shepard附加到动物列表中。

cats_list= ['karl', 'sugar', 'violet']
dogs_list = ['tark', 'wilson', 'varsace']
animals_list = [cats_list + dogs_list]
print(animals_list)
animals_list.append('german shepard')
print(animals_list)

# Output :- [['Karl', 'sugar', violet', 'tark', 'wilson', 'versace', 'german shepard']]

要了解列表的概念,您可以选中here.