2015-03-21 8 views
0
while n: 
    i += 1 
    istart = raw_input("Interview Start Time: ") 
    iend= raw_input("Interview End Time: ") 
    ipeople= raw_input("What are the interviewer names: ") 
    itype= raw_input("What is the interview type: ") 
    lis.append({istart, iend, ipeople, itype}) 
    n-=1 
    for i in lis: 
    print i 

IT создавшего эту НАПРИМЕРДобавление вещей в список в том же порядке

set(['9', '8', 'problem', 'john smith']) 
set(['john deer', '10', '9', 'fit']) 

Как я могу убедиться, что все добавляются в том же порядке, каждый раз, когда я могу даже сделать это с помощью списка в Python? Конечная цель состоит в том, чтобы записать это в файл с именем mydoc.doc, который я настроил, но мне нужно, чтобы он был отформатирован в таблицу, подобную дисплею, чтобы отобразить это в хорошем формате таблицы, поэтому согласование в каждом подсписке является ключевым. Есть ли библиотека python, которая может помочь в создании таблицы. Я знаю, что могу просто использовать тире, но мне нужна более приятная таблица стилей html.

+2

Исправьте отступ. –

+0

Для чего нужна 'i'? Используйте 'for'-Loop вместо' while'. – Daniel

+0

Почему вы используете набор? –

ответ

5

Выберите tuple как структуру данных вместо set. tuple сохранит заказ и set не будет. Это изменение { и } в заявлении app ( и ). Это добавит tuple. Кроме того, если istart и iend то же самое, то set сохранит только одну копию.

lis.append((istart, iend, ipeople, itype)) 

Пример вывода

Interview Start Time: 8 
Interview End Time: 9 
What are the interviewer names: john smith 
What is the interview type: problem 
Interview Start Time: 9 
Interview End Time: 10 
What are the interviewer names: john deer 
What is the interview type: fit 
('8', '9', 'john smith', 'problem') 
('9', '10', 'john deer', 'fit') 

см -

  • tuple
  • set

    Набор является n неупорядоченная коллекция без дубликатов элементов. Основные виды использования включают тестирование членства и устранение дубликатов записей.

2

set, как dict, использует хэш-таблицу, поэтому она имеет не порядка среди вещей - и это именно то, что вы просите с фигурными скобками в

lis.append({istart, iend, ipeople, itype}) 

Поскольку вы заботитесь о заказе этих предметов, это абсурдно использовать set - использование, вместо этого, типа, который ли поддерживать порядок предмета, SUC ч как list (квадратные скобки):

lis.append([istart, iend, ipeople, itype]) 

или через tuple (круглые скобки):

lis.append((istart, iend, ipeople, itype)) 

В любом случае, чтобы сформировать из полученного списка хороший HTML таблицу, можно, например, установить и использование http://www.decalage.info/en/python/html.

После того, как вы иметь установлен этот модуль, и с lis в виде списка подсписков:

import HTML 
table = HTML.table(lis) 
print table 

делает все это для вас. (Вероятно, вам нужен первый под-список, который дает имена столбцов, tho).

0

попробуйте вместо этого:

n = True 
    sublis = [] 
    while n: 
     istart = raw_input("Interview Start Time: ") 
     iend = raw_input("Interview End Time: ") 
     ipeople = raw_input("What are the interviewer names: ") 
     itype = raw_input("What is the interview type: ") 
     sublis.append([istart,iend,ipeople,itype]) 
     n = False 
    lis.append(sublis) 

Поэтому использовать его в качестве формата списка, вместо, сохраняющее порядок.