以相同的顺序将事物添加到列表中

时间:2015-03-21 16:13:23

标签: python list python-2.7

  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的文件,但我需要将其格式化为一个像display这样的表格,以一种漂亮的表格格式显示,这就是为什么每个子列表中的一致性是关键的。是否有一个python库可以帮助创建一个表。我知道我可以使用破折号,但我需要一个更好的HTML样式表。

3 个答案:

答案 0 :(得分:5)

选择tuple作为数据结构而不是settuple会保存订单,而set则不会。这会将附加语句中的{}更改为()。这将附加tuple。除此之外,如果istartiend相同,那么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

      

    集合是无序集合,没有重复元素。基本用途包括成员资格测试和消除重复条目。

答案 1 :(得分:2)

setdict一样,使用哈希表,因此在其项目中有顺序 - 而且完全< / strong>您在

中使用大括号要求的内容
lis.append({istart, iend, ipeople, itype})

因为你关心物品&#39;订购,使用set - 使用确实维护项目排序的类型是荒谬的,例如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)。

答案 2 :(得分: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)

因此,请将其用作列表格式,而不是保留顺序。