Печать нескольких значений на строку в python

#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. Тебе нужна запятая?