很抱歉我不得不问,但我找了很久也没找到有用的东西。
问题在于,我有一个数组列表:
list = [["I","Am"], ["An","Array", "Within", "An Array"]]
我希望按照数组长度对“列表”进行排序。
目前为止,我尝试过:
list.sort()
#and
def nc(x):
return len(x)
list.sort(key=nc)
但是这两个都返回“None”。 我真的很感激你的帮助。 提前致谢!
很抱歉我不得不问,但我找了很久也没找到有用的东西。
问题在于,我有一个数组列表:
list = [["I","Am"], ["An","Array", "Within", "An Array"]]
我希望按照数组长度对“列表”进行排序。
目前为止,我尝试过:
list.sort()
#and
def nc(x):
return len(x)
list.sort(key=nc)
a_list.sort()
会对a_list
进行原地排序(修改自身)并返回None
,因为它是这样设计的。
sorted(a_list, key=len)
将返回已排序的列表。
顺便提一句,您的输入数据已经排序了,那么期望的结果是什么?
.sort()
方法可以就地对列表进行排序。像大多数改变对象的方法一样,它返回< code > None ,但是如果您查看列表,您会发现它已经被排序了。如果您想要制作一个已排序的列表的副本,则:
newlist = sorted(original_list, key=len)
我会做的。请注意,您的nc
函数虽然是正确的,但比需要的更加复杂。
list_arrays = [["I","Am"], ["An","Array", "Within", "An Array"]]
list_output = []
index = 0
for i in list_arrays:
sorted_array = sorted(list_arrays[index])
list_output.insert(index, sorted_array)
index = index + 1
print list_output
这将为您提供一种方法来对数组进行排序。
试试这个:
list = [["I","Am"], ["An","Array", "Within", "An Array"]]
print(sorted(list, key = lambda ele : len(ele), reverse = True))