我有以下python列表:
['chhattisgarh_2015_aa.csv', 'chhattisgarh_2016_aa.csv', 'daman_and_diu_2000_aa.csv', 'daman_and_diu_2001_aa.csv', 'daman_and_diu_2002_aa.csv']
如何将其分为两个列表:
['chhattisgarh_2015_aa.csv', 'chhattisgarh_2016_aa.csv'] and ['daman_and_diu_2000_aa.csv', 'daman_and_diu_2001_aa.csv', 'daman_and_diu_2002_aa.csv']
名单是根据2000年之前的单词来划分的。。。你知道吗
我知道我应该在python中使用regex,但不知道怎么做。此外,解决方案需要可扩展,不依赖于实际名称,例如chattisgarh
您可以在这里使用
itertools.groupby
:regex
(.+)_\d{4}
匹配一组至少包含一个字符(这是我们分组的依据)的字符,后跟下划线和4位数字。你知道吗将正则表达式与字典结合使用的另一个选项:
这里有一种获取字典的方法,其中每个“name”键的值都是以该名称开头的字符串列表,保持原始列表的顺序。它不使用regex,实际上根本不使用模块。您可以轻松地修改它以生成函数、从每个名称中删除尾随下划线、检查数据列表中的各种错误、从字典中获取结果列表等等。你知道吗
如果您允许其他模块,或者允许更改顺序,我相信还有其他方法。你知道吗
此代码的结果(美化)为
相关问题 更多 >
编程相关推荐