Простая проблема, Python3

import pprint
amount = int(input())
commands = []
namespaces = {'global': [],
              'global_path': []}
for i in range(amount):
    commands.append(input().split(' '))
for command in commands:
    if command[0] == 'create':
        namespaces[command[1]] = []
        (1)namespaces[command[1] + '_path'] = namespaces[command[2]+'_path'].copy().append(command[2])
        (2)namespaces[command[1] + '_path'] = namespaces[command[2]+'_path'].copy()
        (2)namespaces[command[1] + '_path'].append(command[2])   
pprint.pprint(namespaces)

Здравствуйте! Когда закомментирована строка (1), то при тесте и вводе построчно:

 1. 1 
 2. create one global

Выводится то, что ожидалось:

{'global': [], 'global_path': [], 'one': [], 'one_path': ['global']}

Однако когда закомментированы строки (2), выводится не то, что ожидалось.

{'global': [], 'global_path': [], 'one': [], 'one_path': None}

Строка (1) и строки (2) эквиваленты, как мне кажется.

В чем я ошибаюсь? Спасибо!


Ответы (1 шт):

Автор решения: Danis

x.append ничего не возвращает

x = []
print(x.append(0))

вывод:

None

можно записать так:

namespaces[command[2]+'_path'].copy() + [d[2]]
→ Ссылка