我的列表包含以下图像,这些图像的名称结构为“number.image”
[1.image, 2.image, 3.image, 4.image, 5.image, 6.image, 7.image, 8.image, 9.image, 10.image, 11.image, 12.image, 13.image]
应用 python 内置
sorted()
方法来确保列表中的元素以正确的方式排序,我得到了这个结果。如您所见,顺序不正确。
1.image
10.image
11.image
12.image
13.image
2.image
3.image
4.image
5.image
6.image
7.image
8.image
9.image
sorted
函数而不安装 natsort
等库,您可以使用 lambda 函数作为关键参数,将文件的主干解释为整数:
>>> filenames = [
... '1.image',
... '10.image',
... '11.image',
... '12.image',
... '13.image',
... '2.image',
... '3.image',
... '4.image',
... '5.image',
... '6.image',
... '7.image',
... '8.image',
... '9.image',
... ]
>>> sorted_filenames = sorted(filenames, key=lambda f: int(f.split('.')[0]))
>>> print('\n'.join(sorted_filenames))
1.image
2.image
3.image
4.image
5.image
6.image
7.image
8.image
9.image
10.image
11.image
12.image
13.image