我试图从一个主列表创建几个新列表,其中新列表包含来自主列表的类似项。具体地说,我有一张公交线路表。下面是一个示例数据集:
[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,有些只有一条路线,b/c是环形路线)。最后,我想在地图软件中合并IB和OB路由(我已经知道怎么做了)。。。在
我最初创建的文件名是为了让前5个字符代表总线路由,不管它是否是IB还是OB。因此,我可以根据前5个字符对类似的项目进行分组。例如,当我写下:
^{pr2}$我得到:
>>>
Bus04
Bus04
Bus15
Bus15
如何将属于Bus04
和Bus04
,以及Bus15
和{
[u'Bus04_00_00_IB_pts_Line', u'Bus04_00_00_OB_pts_Line']
和{
我的思路是循环遍历每个项目,查看每个项目的前五个字符,然后创建一个新列表,其中包含每个新出现的五个字符的项目(并将该项目添加到新列表中),或者检查列表是否已经存在并将类似的项目附加到该列表中。在
我很难用代码写出来,所以任何帮助都是非常感谢的!在
我将使用^{} 来进行此操作:
这会产生:
^{pr2}$与迄今为止提出的其他一些解决方案不同的是,这种方法不考虑条目在输入列表中出现的顺序。在
您可以将^{} 与自定义键函数一起使用,例如
lambda x: x[0:5]
。在下面是一个演示,它为您提供了一个静态列表(即,不仅仅是生成器):
相关问题 更多 >
编程相关推荐