将regex应用于以'chr[0-9XY]'*开头的目录的名称文件后,我按以下顺序获得一个列表:
['chr9', 'chr8', 'chr7', 'chr6', 'chr5', 'chr4', 'chr3', 'chr2', 'chr1', 'chr10', 'chr11', 'chr12', 'chr13', 'chr14', 'chr15', 'chr16', 'chr17', 'chr18', 'chr19', 'chr20', 'chr21', 'chr22', 'chrX', 'chrY']
我申请了环球网模块来迭代目录中所需的文件,并按此方式排序。在
我的问题是,是否有可能使glob模块以不同的方式对文件进行排序,即按整数排序,最后是X和Y排序
['chr1', 'chr2', 'chr3', 'chr4', 'chr5', 'chr6', 'chr7', 'chr8', 'chr9', 'chr10', 'chr11', 'chr12', 'chr13', 'chr14', 'chr15', 'chr16', 'chr17', 'chr18', 'chr19', 'chr20', 'chr21', 'chr22', 'chrX', 'chrY']
有没有办法做到这一点?提前谢谢!在
您可以使用一个名为
natsort
的第三方库,它之所以这样称是因为它自然地对元素进行排序。您可以通过},简单地做一个简单的搜索,您会找到合适的指南。
pip install natsort
安装它。您将需要pip
,如果您还没有安装它,那么请查看here(如果您使用的是windows),否则,有不同的安装方法pip
如果您的系统上尚未安装{完成后,您可以轻松使用
natsort
为您完成所有工作:使用以下代码对blob进行排序:
输出: ['chr1','chr2','chr3','chr4','chr5','chr6','chr7','chr8','chr9','chr10' ,'chr11','chr12','chr13','chr14','chr15','chr16','chr17','chr18','chr19 ','chr20','chr21','chr22','chrX','chrY']
blob_key函数接收一个项(在本例中是一个字符串)并返回与该项关联的键(如果该项是整数,则关联整数键,在另一种情况下:使用chr之后的字符串),然后使用该键进行排序,由于Python在排序时将整数放在字符串之前,因此输出就是我们想要的。
试试lambda
相关问题 更多 >
编程相关推荐