打印报表中的反转/排序



我正在尝试对打印中list2的输出进行排序。

list1 = [1, 2, 3]
list2 = [40, 50, 60]
list3 = list2 + list1 + list2.sort(reverse=True)       
print(f"The new list is: {list3}")

我试图用一个Python语句为list3创建,该语句只使用list1list2来构造一个新的list3,这样代码将打印运行的以下输出。

The new list is: [40, 50, 60, 1, 2, 3, 60, 50, 40]

但是,我收到一个错误:TypeError: can only concatenate list (not "NoneType") to list

编辑:将list2.sort(reverse.True)更改为list2.sort(reverse=True)

list3 = list2 + list1 + list2.sort(reverse.True)抛出Syntax Error——你可能是指:list3 = list2 + list1 + list2.sort(reverse = True)

[TIP]比list2.sort(reverse = True)更简单的方法是list2.reverse()

然而,(list2.sort(reverse = True)list2.reverse()(都是就地操作——它们不是列表对象,只是更改列表的操作。

为了能够对列表求和,您必须添加列表对象,例如:list2[::-1]:

list3 = list2 + list1 + list2[::-1]       

由于list2.sort(reverse.True)list2就地排序并返回None,因此无法将其连接到list2 + list1

list1 = [1, 2, 3]
list2 = [40, 50, 60]
list3 = list2 + list1 + sorted(list2, reverse=True)   
print(f"The new list is: {list3}")

使用返回排序列表的sorted工作

就地排序:

list1 = [2, 3, 1]
list1.sort()
print(list1)
>> [1, 2, 3]

错位分拣:

list1 = [2, 3, 1]
result_list = sorted(list1)
print(list1)
>> [2, 3, 1]
print(result_list)
>> [1, 2, 3]

结账https://docs.python.org/3/howto/sorting.html以获取更多信息。它给出了一个简单的介绍。

试试这个

list1 = [1, 2, 3]
list2 = [40, 50, 60]
list3 = list2.copy()
list3.sort(reverse=True)
list4 = list2 + list1 + list3
print(f"The new list is: {list4}")

最新更新