Я хочу, чтобы мой вывод был свободен от разрывов строк?

#python #truthtable

#питон #правдиво

Вопрос:

 table = [[False,False,False,False,False], [False,False,True,False,True]]   #not changes------------------ for lines in table:  for item in lines:  print("%st" % item)  print("n") #-----------------------------   

Я хочу, чтобы результат был:

 False False False False False False False True False True  

Но мой результат таков:

Ложь
Ложь
Ложь
Ложь
Ложь

Ложь
, Ложь
, Правда
, Ложь
, Правда

Комментарии:

1. Ваш список имеет глубину 3 — вам нужен еще один цикл, чтобы распаковать последний список.

2. Ваш вопрос несколько сбивает с толку — если вы не хотите разрывов строк, не можете ли вы просто удалить print("n") ?

3. Также, если вы хотите добавить одну новую строку, просто не print() print("n")

Ответ №1:

функция print() имеет некоторые дополнительные параметры, по умолчанию

 print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)  

Обратите end='n' внимание, что — в основном всякий раз, когда вы вызываете print (), end добавляется в конец всего, что вы печатаете. Вы захотите удалить это дополнительное n действие, выполнив print(value, end='') .

Это поможет тебе:

 False False False False False  False False True False True  

что все еще не похоже на то, чего ты хочешь. Замена на t с делает вас немного ближе:

 False False False False False   False False True False True  

И, наконец, поскольку вы знаете n print() , что по умолчанию добавляется в конец, вы, вероятно, можете понять, почему print('n') на самом деле станет print('nn') — если вы замените свое print('n') на print() , вы получите желаемый результат:

 False False False False False  False False True False True  

Овации

Комментарии:

1. Также небольшой совет, а не print("%s " % item, end="") то , что вы могли бы вместо этого использовать print(item, end=" ")

Ответ №2:

Вариант первый:

 table = [[False,False,False,False,False], [False,False,True,False,True]] for lines in table:  print(str(lines).replace('[', '').replace(']', ''))  

Вариант второй:

 table = [[False,False,False,False,False], [False,False,True,False,True]] for lines in table:  print(','.join([str(item) for item in lines]))  

Выход:

 False, False, False, False, False False, False, True, False, True  

Комментарии:

1. я должен был отредактировать, попросил прощения

2. отредактировал код, чтобы он соответствовал 🙂

Ответ №3:

Если вы также хотите удалить скобки, вам нужно вложить еще один цикл , который распакует элементы самого внутреннего списка, а затем добавит новую строку для каждого внутреннего списка, как показано в приведенном ниже коде:

 table = [[[False,False,False,False,False], [False,False,True,False,True]]  ,[[False,False,False,False,False], [False,False,True,True,False,True,True]]]   #not changes------------------ for lines in table:  for item in lines:  for i in item:  print("%s " % i, end='')# use 't' if you need more space in between in print("%st" % i, end='')  print() # print("%st" % item)... commenting this as not in use  print() #-----------------------------  

Ниже приведен вывод :

 False False False False False  False False True False True   False False False False False  False False True True False True True   

Пожалуйста, дайте мне знать, это то, что вы хотели сделать, или нет.

Комментарии:

1. спасибо, я заставил вас

2. было ли это полезно?

Ответ №4:

Вам, вероятно, следует использовать панд здесь:

 table = [[False,False,False,False,False], [False,False,True,False,True]] import pandas as pd df = pd.DataFrame(table) for index, row in df.iterrows():  row.to_string(index=False).replace('n', ' ')  

выход:

 'False False False False False' 'False False True False True'  

Комментарии:

1. я должен был отредактировать, попросил прощения

2. Обновлен ответ на основе вашего изменения в вопросе