我正在尝试从一个主列表中创建几个新列表,其中新列表包含来自主列表的类似项。具体来说,我有一个公交路线列表。以下是一个示例数据集:
[u'Bus04_00_00_IB_pts_Line', u'Bus04_00_00_OB_pts_Line', u'Bus15_00_00_IB_pts_Line', u'Bus15_00_00_OB_pts_Line']
大多数公交路线都有一个进站(IB)和一个出站(OB)的项目,(有些有多个IB和OB,有些只有一条路线,因为它们是环形路线)。最终,我想在地图软件中合并IB和OB路线(这已经知道如何做)...
最初,我创建文件名,以便前5个字符表示巴士路线,无论是IB还是OB。因此,我可以根据前5个字符将相似项分组。例如,当我写:
for route in routes:
print route[0:5]
我读取到:
>>>
Bus04
Bus04
Bus15
Bus15
如何将与Bus04和Bus04,以及Bus15和Bus15相关的文件“分组”,并将它们分别列成新列表,使得我能够获得:
[u'Bus04_00_00_IB_pts_Line',u'Bus04_00_00_OB_pts_Line'] 和 [u'Bus15_00_00_IB_pts_Line',u'Bus15_00_00_OB_pts_Line']
我的想法是循环遍历每个项目,查看每个项目的前五个字符,然后创建一个新列表,并将每个新的五个字符项目添加到该列表中,或者检查是否已经存在一个列表并将相似的项目附加到其中。
我很难用代码来描述这个过程,因此非常感谢任何帮助!
dict(d)
,而是可以这样做:d.default_factory = None
,使defaultdict在几乎所有实际用途中都能像普通字典一样运行。 - mgilsondict
调用仅仅是为了在打印时更好看(即没有defaultdict(<type 'list'>, etc..
)。 - DSMdefault_factory
属性时,我感到非常兴奋,所以我已经记下来要从现在开始宣扬它的好处 :) - mgilson