我怎样分类词典?

2024-09-28 17:15:35 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是我从一个txt文件中直接撕下的房间号和客人详细信息的列表,需要将其放入字典中,房间号作为键,详细信息作为值。在

客人名单字面上是一个列表,每一项代表房间号码,客人姓名,到达,离开日期。旁边没有东西的房间是空的。在

nlist = [['101'], ['102'], ['103'], 
['201', ' John Cleese', ' 5/5/12', ' 5/7/12'], ['202'], 
['203', ' Eric Idle', ' 7/5/12', ' 8/7/12'], ['301'], ['302'], ['303']]

基本上,我得把它放到字典里去。我试了一下:

^{pr2}$

这给了我:

^{3}$

正如你所见,这本词典没有按特定的顺序排列。但是,对于这个特定的练习,字典需要按房间号从低到高的顺序排列。我想我认为它应该从头到尾遍历每个内部列表,测试它,然后按照这个顺序构建字典。在

有没有人知道如何正确地编写代码,这样字典就会变成{'101':None,'102',None,'103':None。。。等等)?希望有人能解释为什么我的代码也不能像我想的那样工作。在


Tags: 文件代码txtnone列表字典详细信息代表
1条回答
网友
1楼 · 发布于 2024-09-28 17:15:35

标准的Python字典本质上是无序的。在

一种可能是使用^{}。它将保留插入顺序,这意味着您必须按照希望检索它们的顺序插入条目。在

另一种可能是保持dict不变,但按所需顺序迭代:

for k, v in sorted(guests.items()):
  print k, v

最后,需要注意的是,您的示例将房间编号存储为字符串而不是整数。这意味着顺序是字典式的('90' > '100')。因为这是家庭作业,所以我把它作为一个练习留给阅读者,以找出如何解决这个问题。在

相关问题 更多 >