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

Jef*_*nge 4 python arrays sorting multidimensional-array

我想用Python(按字母顺序排序)打开此数据:

test = [['ma', 'e', 'wa', 'ka'], ['ma', 'haa', 'laa'], ['ma', 'ka', 'm', 'haa', 'laa', 'ca', 'j', 'ra'], ['ma', 'ra'], 'ma']
Run Code Online (Sandbox Code Playgroud)

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

test = ['ma', ['ma', 'ra'], ['ma', 'haa', 'laa'], ['ma', 'e', 'wa', 'ka'], ['ma', 'ka', 'm', 'haa', 'laa', 'ca', 'j', 'ra']]
Run Code Online (Sandbox Code Playgroud)

如果您只是看一下长度,我希望它从[4,3,8,2,1]变为[1,2,3,4,8],但我不一定希望解决方案是特定于此示例。

Rau*_*uiu 5

test = sorted(test, key=lambda x: len(x) if type(x)==list else 1)
Run Code Online (Sandbox Code Playgroud)

我尝试过:

>>> test = [['ma', 'e', 'wa', 'ka'], ['ma', 'haa', 'laa'], ['ma', 'ka', 'm', 'haa', 'laa', 'ca', 'j', 'ra'], ['ma', 'ra'], 'ma']
>>> test = sorted(test, key=lambda x: len(x) if type(x)==list else 1)
>>> test
['ma', ['ma', 'ra'], ['ma', 'haa', 'laa'], ['ma', 'e', 'wa', 'ka'], ['ma', 'ka', 'm', 'haa', 'laa', 'ca', 'j', 'ra']]
Run Code Online (Sandbox Code Playgroud)

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