Распаковка списков в Python
Перейдите к следующему слайду, нажав кнопку Вправо
PATH_TO_HOME = [
('LEFT', 2),
('FORWARD', 40),
('RIGHT', 7),
]
for part in PATH_TO_HOME:
direction = part[0]
steps_count = part[1]
print('Go to', direction, end=' ')
print(steps_count, 'steps.'
PATH_TO_HOME = [
('LEFT', 2),
('FORWARD', 40),
('RIGHT', 7),
]
for direction, steps_count in PATH_TO_HOME:
print('Go to', direction, end=' ')
print(steps_count, 'steps.'
Было:
Стало:
Распаковка в цикле
def get_around_path():
return [
('LEFT', 5),
('FORWARD', 5),
('RIGHT', 5),
]
PATH_TO_HOME = []
PATH_TO_HOME.append(('FORWARD', 20))
PATH_TO_HOME.extend(get_around_path())
PATH_TO_HOME.append(('FORWARD', 100))
PATH_TO_HOME.extend(get_around_path())
PATH_TO_HOME.append(('FORWARD', 10))
PATH_TO_HOME.append(('LEFT', 20))
def get_around_path():
return [
('LEFT', 5),
('FORWARD', 5),
('RIGHT', 5),
]
PATH_TO_HOME = [
('FORWARD', 20),
*get_around_path(),
('FORWARD', 100),
*get_around_path(),
('FORWARD', 10),
('LEFT', 20),
]
Было:
Стало:
Распаковка внутри списка
def get_around_path():
return [
'LEFT', 'LEFT', 'LEFT',
'FORWARD', 'FORWARD',
'RIGHT', 'RIGHT', 'RIGHT',
]
PATH_TO_HOME = []
PATH_TO_HOME.append('LEFT')
PATH_TO_HOME.append('FORWARD')
PATH_TO_HOME.append('FORWARD')
PATH_TO_HOME.append('FORWARD')
PATH_TO_HOME.append('FORWARD')
PATH_TO_HOME.extend(get_around_path())
PATH_TO_HOME.append('FORWARD')
PATH_TO_HOME.append('FORWARD')
def get_around_path():
return [
*['LEFT'] * 3,
*['FORWARD'] * 2,
*['RIGHT'] * 3,
]
PATH_TO_HOME = [
'LEFT',
*['FORWARD'] * 4,
*get_around_path(),
*['FORWARD'] * 2,
]
Было:
Стало:
Распаковка + умножение списка