Простая проблема, 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]]