Новый объект не будет добавлен в список - PullRequest
0 голосов
/ 23 июня 2019

Я создал два списка с именами dogs_list и cats_list, а затем третий список с именем animals_list. Затем я попытался добавить другой объект в список dogs_list, используя dogs_list.append('german shepards'). После того, как я добавлю немецкие шепарды на 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 ]

4 голосов
/ 23 июня 2019

Операция +, используемая для построения animals_list, создает копию элементов в cats_list и dogs_list. Вызов append изменяется только dogs_list, но не animals_list.

0 голосов
/ 23 июня 2019

Отметьте это, если я не ошибаюсь, сначала вы создаете список кошек, затем список собак, а затем список животных.После этого вы распечатаете список животных.Затем вы добавляете 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']]

Чтобы понять концепцию списка, вы можете проверить здесь.

0 голосов
/ 23 июня 2019

это подход дилетанта для получения результата

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

0 голосов
/ 23 июня 2019

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...