Python中多维数组中列表的排序顺序

2024-04-16 03:59:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python(按字母顺序排序)转换这些数据:

test = [['ma', 'e', 'wa', 'ka'], ['ma', 'haa', 'laa'], ['ma', 'ka', 'm', 'haa', 'laa', 'ca', 'j', 'ra'], ['ma', 'ra'], 'ma']

放入多维数组中,其项按每个列表中的项数进行排序,如下所示:

^{pr2}$

如果你看一下长度,我希望它从[4,3,8,2,1]变为[1,2,3,4,8],但我不一定希望解决方案针对这个例子。在


Tags: 数据test列表排序顺序字母数组ca
2条回答

一种解决方案:

sorted(test, key=lambda x: isinstance(x,list) and len(x) or 1)
test = sorted(test, key=lambda x: len(x) if type(x)==list else 1)

我试过了:

^{pr2}$

唯一奇怪的是,并不是原始列表中的所有元素都是list,而是包含了字符串和list,这就是为什么我必须添加条件如果type(x)==list else 1

相关问题 更多 >