2013-10-24 3 views
0

У меня есть список, отформатированный как следующее:печати список-из-списков в табличной форме в Python

list_of_DVDsuppliers=[["a","m",15],["w","p",34]] 

я хотел бы, чтобы распечатать содержимое этого списка в виде таблицы с некоторыми заголовками. Вот что я пробовал до сих пор:

def dvdprintsoftlist(): 
    print(list_of_DVDsoftwears) 
    ''' printing the available DVDstocks,supplier's details ''' 
    print("This is your current list of stock") 
    print("Supplier Name  Softwear Name    Amount") 
    print("----------------------------------------------------------------") 
    for (index,[name,softname,amount]) in enumerate (list_of_DVDsuppliers): 
     print(name + "   " +softname + "   " +str(amount) + " ") 
     print("----------------------------------------------------------------") 
    print("") 

Проблема в том, что этот код не выравнивает столбцы таблицы должным образом. Как я могу убедиться, что все записи совпадают друг с другом?

Я также хотел бы экспортировать свои данные в формате CSV, чтобы другие программы могли его читать, но это отдельный вопрос.

+0

я просто использовать этот код четкость dvdprintsoftlist(): печати (list_of_DVDsoftwears) '' 'печать имеющихся DVDstocks, деталь продукции ''' печати ("Это ваш текущий список складе") print («Название поставщика одежды для одежды») print ("------------------------------------ ---------------------------- ") для (указатель, [имя, имя, количество]) в перечислении (list_of_DVDsuppliers): print (name + "" + softname + "" + str (amount) + "") print ("-------------------------- -------------------------------------- ") print ("") – user2912389

+0

@stackErr hlp mee – user2912389

+1

Вы нашли http://stackoverflow.com/questions/9535954/python-printing-lists-as-tabular-data? – atomicinf

ответ

1

Вы можете использовать format(), {i:length} в строке, будут заменены параметрами, где i - это идентификатор заказа, а length - это «длина» поля.

def dvdprintsoftlist(): 
    list_of_DVDsuppliers=[["a","m",15],["w","p",34]] 
    print(list_of_DVDsuppliers) 
    print 
    ''' printing the available DVDstocks,supplier's details ''' 
    print("This is your current list of stock") 
    print("Supplier Name\t\tSoftwear Name\t\tAmount") 
    print("----------------------------------------------------------------") 
    for [name, softname, amount] in list_of_DVDsuppliers: 
     print("{0:23} {1:23} {2:5}".format(name, softname, amount)) 
     print("----------------------------------------------------------------") 
    print("") 

dvdprintsoftlist() 
+0

эта ошибка appered Traceback (самый последний вызов последнего): файла "C: \ Users \ AAA \ Desktop \ питон почти сделано \ тест модуля useage.py", строка 11, в импорт modulenew Файл «C: \ Users \ AAA \ Desktop \ python почти done \ modulenew.py ", строка 263 print" {0:23} {1:23} {2: 5} ". Format (имя, имя, номер) ^ SyntaxError : invalid syntax – user2912389

+0

Попробуйте этот код в новом файле. Посмотрите, как это работает, а затем попробуйте добавить его в свой код. PS: Если это SyntaxError, вы можете написать что-то неправильное там – Christian

+0

ok я очень благодарю – user2912389

0

Попробуйте использовать биты заполнения между% и при печати с

вы можете использовать их как ...

print('%-20s%-20s%-20s'%('supplier name','software name','amount')) 

-для левой прокладки и анолит (по умолчанию) для правильного заполнения

+0

как добавить это дополнение в мой код, пожалуйста, вы мне поможете? – user2912389

Смежные вопросы