Задать вопрос
@Konina999

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

Вводится строка из слов, записанных через пробел. Необходимо на их основе
составить таблицу из N столбцов и N строк. Лишние слова отбросить. Реализовать
программу с использованием функции zip. Результат отобразить на экране в виде
таблицы из слов, записанных через пробел (в каждой строчке)
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 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 до 250 000 ₽
AST Москва
До 350 000 ₽
Wanted. Москва
До 250 000 ₽
13 янв. 2025, в 23:21
2000 руб./в час
13 янв. 2025, в 23:16
10000 руб./за проект
13 янв. 2025, в 21:59
30000 руб./за проект