Вы должны переназначить sentence
на возвращаемое значение sentence.split()
или выполнить итерацию непосредственно над sentence.split()
, поскольку метод str.split () не изменяет sentence
на месте, новместо этого возвращает список.
Также вам не нужен оператор del a
.
Измените код на
directions = ["north", "south", "east", "west"]
def scan(sentence):
global sentence_list
sentence_list = []
for i in sentence.split():
if i in directions:
a = ('direction', i)
sentence_list.append(a)
return sentence_list
Или еще более короткий путь - Понимание списка
directions = ["north", "south", "east", "west"]
def scan(sentence):
global sentence_list
sentence_list = [('direction', i) for i in sentence.split() if i in directions]
return sentence_list
Вывод
>>> scan("north")
[('direction', 'north')]
И вы можете захотеть использовать в своем коде оператор global
.Как объяснено в различных ресурсах , вы хотите избегать использования глобальных переменных для удобства чтения и поддержки вашего кода.