问题描述
我正在尝试对印刷版list2
的输出进行排序。
list1 = [1,2,3]
list2 = [40,50,60]
list3 = list2 + list1 + list2.sort(reverse=True)
print(f"The new list is: {list3}")
我正在尝试使用仅使用list3
和list1
来构造新的list2
的单个Python语句为list3
创建代码,以便代码打印以下内容输出运行。
The new list is: [40,60,1,3,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,3]
异地排序:
list1 = [2,1]
result_list = sorted(list1)
print(list1)
>> [2,1]
print(result_list)
>> [1,3]
查看https://docs.python.org/3/howto/sorting.html,以获取更多信息。简单介绍。
,尝试一下
list1 = [1,60]
list3 = list2.copy()
list3.sort(reverse=True)
list4 = list2 + list1 + list3
print(f"The new list is: {list4}")