我正在尝试编写一个程序,根据特定字符的数量来排序字符串列表,即点.
['C222.', 'C4444', 'C22..', 'C333.', 'C2222']
是我的列表导入的方式,但我需要像这样:
['C2222', 'C4444', 'C333.', 'C222.', 'C22..']
如果物品的点数相同,我不在乎物品的分类方式
提前致谢!
答案 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..']