Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 21
1

Прибавить список, умноженный на скаляр

17.09.2016, 22:01. Показов 1279. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как красиво и быстро прибавить к каждому элементу одного списка соответствующий элемент второго списка, умноженный на число?

Задача, в которой возник вопрос, подразумевает поиск клада по указаниям. Клад находится в точке tk, координаты считываем. Мы стоим в точке k = (0, 0). Далее читаем пары строк из направления и количества шагов и делаем соответствующий шаг, пока не придём к кладу.

Python
1
2
3
4
5
6
7
8
9
10
11
tk = [int(input()), int(input())]
dirs = {'север': (0, 1), 'восток': (1, 0), 'юг': (0, -1), 'запад': (-1, 0)}
k = [0, 0]
steps = 0
while not (tk == k):
    steps += 1
    cur_dir = input()
    dist = int(input())
    k[0] += dirs[cur_dir][0]*dist
    k[1] += dirs[cur_dir][1]*dist
print(steps)
Пример входных данных:

Код
-5
1
север
1
запад
5
восток
7
Собственно вопрос про вот эти две строки:

Python
1
2
    k[0] += dirs[cur_dir][0]*dist
    k[1] += dirs[cur_dir][1]*dist
Хотелось бы улучшить их вид, не ухудшив смысл\производительность\и т. д.

Думаю в сторону чего-то такого:

Python
1
k = [x + y*dist for x, y in zip(k, dirs[cur_dir])]
Но как-то громоздко выходит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2016, 22:01
Ответы с готовыми решениями:

К i-му элементу массива прибавить его порядковый номер, умноженный на 10
Требуется к i-му элементу первого массива прибавить его порядковый номер, умноженный на 10. Сделать...

Прибавить к k-ому столбцу исходной матрицы l-й её столбец, умноженный на заданное число
Дана квадратная матрица n. Прибавить к k-ому столбцу исходной матрицы l-й её столбец, умноженный на...

Первод 8>10 cc умноженный на перевод 4>10 c плавающей запятой
Здравствуйте,помогите с программой,очень нужно,последняя работа осталась,никак не могу разобраться...

Можно ли с использованием только операций «прибавить 3» и «прибавить 5» получить из числа 1 число N
Определить можно ли с использованием только операций «прибавить 3» и «прибавить 5» получить из...

1
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
19.09.2016, 11:19 2
На numpy такие вещи хорошо делаются.
В PyQt тоже есть подходящие типы.
0
19.09.2016, 11:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2016, 11:19
Помогаю со студенческими работами здесь

Определить, можно ли с использованием только операций «прибавить 3» и «прибавить 5» получить из числа 1 число N
Помогите, пожалуйста, написать код этой задачи на языке паскаль. Определить можно ли с...

Определить, можно ли с использованием только операций «прибавить 3» и «прибавить 5» получить из числа 1 число N
Определить можно ли с использованием только операций «прибавить 3» и «прибавить 5» получить из...

К последнему элементу второго массива прибавить последний элемент первого, к предпоследнему - прибавить предпоследний
Объявите в программе два массива 16-битных целых со знаком. Количество элементов массивов должно...

Если данное целое число оно является отрицательным, то прибавить к нему 5; в противном случае прибавить 10
Дано целое число. Если оно является отрицательным , то прибавить к нему 5; в противном случае...

Из i го элемента первого массива вычесть его порядковый номер, умноженный на 4
Требуется из i-го элемента первого массива вычесть его порядковый номер, умноженный на 4. Ребят....

К последнему элементу второго массива прибавить первый элемент первого, к предпоследнему - прибавить второй элемент
Требуется к последнему элементу второго массива прибавить первый элемент первого, к предпоследнему...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru