我有一个列表,其元素由字母和数字组成,如下所示:
我想对其进行排序,因此我使用了sort函数,但输出结果如下:
然而,我希望输出结果是:
['H1', 'H100', 'H10', 'H3', 'H2', 'H6', 'H11', 'H50', 'H5', 'H99', 'H8']
我想对其进行排序,因此我使用了sort函数,但输出结果如下:
>>> a = ['H1', 'H100', 'H10', 'H3', 'H2', 'H6', 'H11', 'H50', 'H5', 'H99', 'H8']
>>> print sorted(a)
['H1', 'H10', 'H100', 'H11', 'H2', 'H3', 'H5', 'H50', 'H6', 'H8', 'H99']
然而,我希望输出结果是:
['H1', 'H2', 'H3', 'H5', 'H6', 'H8', 'H10', 'H11', 'H50', 'H99', 'H100']
有人知道如何做到这一点吗?谢谢。
int("".join([i for i in x if i.isdigit()]))
的含义?为什么isdigit
不会返回 false 呢?我认为它应该像这样工作:isdigit('H1')
,isdigit('H100')
... - PIGfor i in x if i.isdigit()
逐个字母检查它是否是数字。如果是数字,则将其添加到列表中。当我们执行"".join
时,我们将列表的所有元素即字符串的数字部分与空分隔符 "" 组合在一起。 - Sergey Ivanov'H100'
,但是代码的哪一部分会将其输出为'100'
。我只是不理解这一部分。 - PIG'H'
和'101'
分开了。请解释一下。 - PIG