#python #python-3.x #printing
Вопрос:
Существует переменная, в которую записываются текстовые или числовые значения. Одно слово (или число) в строке. Как распечатать эти данные, чтобы они были сгруппированы по желаемому количеству значений в строке? Пример:
date = "
a,
b,
c,
111,
222,
444
"
Вывод для значений in_row = 4:
a, b, c, 111,
222, 444
Вывод для значений in_row = 2:
a, b,
c, 111,
222, 444
Комментарии:
1. Не могли бы вы уточнить и отформатировать ожидаемый ввод/вывод? Похоже, вы перечисляли одно и то же снова и снова.
2. Можете ли вы привести пример того, как должен выглядеть результат? Текущий пример, по-видимому, одинаков как для 4 значений в строке, так и для двух значений в строке
3. какая структура данных является вашей доступной «датой»? это веревочка? список?
4. Ваш вопрос слишком широк. Что ты пробовал? Знаете ли вы, как составить список из вашей строки
date
? Знаете ли вы, как перебирать элементы списка? Знаете ли вы%
оператор (по модулю)?5. @строка samology
Ответ №1:
К вашему сведению, ваш вопрос отформатирован с уценкой, поэтому обязательно просмотрите предварительный просмотр перед публикацией. Он был отформатирован таким образом, чтобы скрыть то, что вы пытаетесь сделать, но я вижу, что некоторые изменения поставлены в очередь, так что это должно быть исправлено в ближайшее время.
Что касается вашего фактического вопроса, у вас есть данные:
data = (
"a,"
"b,"
"c,"
"111,"
"222,"
"444"
)
Этот синтаксис объединит все ваши строки вместе, как:
data = "a,b,c,111,222,444"
Сначала разделите данные на запятые.
data = list(data.split(","))
Затем сгруппируйте свой список в подсписки по длине values_in_row
:
data = [data[i:i values_in_row] for i in range(0, len(data), values_in_row)]
Который для values_in_row = 4
того, чтобы дать вам [["a", "b", "c", "111"], ["222", "444"]]
Теперь вы можете распечатать каждый подсписок следующим образом:
for sublist in data:
print(sublist)
Но в своем вопросе вы снова соединили их запятыми, включая конечную запятую во всех, кроме последней строки. Сделай это вот так.
rows = [", ".join(sublist) for sublist in data]
number_of_rows = len(rows)
for i, row in enumerate(rows, start=1):
if i == number_of_rows:
print(row)
else:
print(row ",")
Комментарии:
1. Ошибка атрибута: объект «список» не имеет атрибута «присоединиться»
2. Я допустил опечатку и теперь исправил ее. Это должно было быть
", ".join(sublist)
3. Это работает, спасибо. Но в конце всей строки»,»
4. Тебе нужна запятая?