Python:如何按特定字符的数量对列表进行排序

时间:2016-04-23 12:40:00

标签: python list

我正在尝试编写一个程序,根据特定字符的数量来排序字符串列表,即点.

['C222.', 'C4444', 'C22..', 'C333.', 'C2222']是我的列表导入的方式,但我需要像这样:

['C2222', 'C4444', 'C333.', 'C222.', 'C22..']

如果物品的点数相同,我不在乎物品的分类方式

提前致谢!

2 个答案:

答案 0 :(得分:6)

您可以使用sorted()和键功能检查指定字符的数量:

>>> lst = ['C222.', 'C4444', 'C22..', 'C333.', 'C2222']
>>> sorted(lst, key=lambda t: t.count("."))
['C4444', 'C2222', 'C222.', 'C333.', 'C22..']

答案 1 :(得分:1)

使用numpy的替代方法:

np.array(ll)[np.argsort([i.count('.') for i in ll])].tolist()
#['C4444', 'C2222', 'C222.', 'C333.', 'C22..']