我有一个字符串列表:
[song_1, song_3, song_15, song_16, song_4, song_8]
我想按结尾处的#对它们进行排序,不幸的是,由于较低的数字不是“08”并且是“8”,它们在字典顺序上被视为大于15。
我知道我必须向sort函数传递一个键,我在这个站点的某个地方看到了这样一个键来对字符串形式的十进制数进行排序:
sorted(the_list, key=lambda a:map(int,a.split('.'))
但那是“1.2,2.5,2.3”,但我没有那个案子。我想用'.'替换'.',但根据我的理解,它将两边都转换为int,这将失败,因为'.'的左边是一个字符串。
任何帮助都将不胜感激
编辑:我忘了提到所有前缀都是相同的(本例中的歌曲)
好吧,首先要按文件名排序,然后在int部分:
你很接近。
应该这么做。这将在下划线上拆分,将第二部分(即第一个下划线之后的部分)转换为整数,用作键。
相关问题 更多 >
编程相关推荐