@Konina999

Не могу решить задачу в питоне с помощью zip?

Вводится строка из слов, записанных через пробел. Необходимо на их основе
составить таблицу из N столбцов и N строк. Лишние слова отбросить. Реализовать
программу с использованием функции zip. Результат отобразить на экране в виде
таблицы из слов, записанных через пробел (в каждой строчке)
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ну zip() тут ни к селу ни к городу... но в принципе можно использовать.
1. Введи строку.
2. Разбей на слова (split() в помощь)
3. Найди такое наибольшее N, что длина списка слов больше N*N. Т.е. если в списке 6 слов, то N будет 2, так как при N = 3 нам понадобится 9 слов для таблицы. Найти можно просто, извлеки корень из длины списка и отбрось дробную часть.
4. Построй список списков. Каждый элемент (т.е. каждый вложенный список) будет одним столбцом таблицы, и будет иметь длину N. Т.е. если оригинальный список слов будет words, то мы получим
columns = [ words[0:N], words[N:2*N], words[2*N:3*N], ... ]
и так далее. Так как число вложенных списков равно N, т.е. заранее неизвестно, это нужно будет сделать циклом.
5. Сделай цикл вида for row in zip(*columns):, тогда у тебя zip() возьмёт сначала первый элемент каждого столбца, и скомпонует из них кортеж row. Потом второй из каждого, потом третий, и т.д.
6. Строки из каждого кортеж row нужно вывести, разделив пробелом. Тут можно метод str.join() использовать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
15 июн. 2024, в 23:20
50000 руб./за проект
15 июн. 2024, в 23:15
4000 руб./за проект
15 июн. 2024, в 23:01
4400 руб./за проект