python - python中的list'+'list和list .extend有什么区别?
问题描述
前任。如果输入“-1 1 3 -2 2”,答案应该是“-1 -2 1 3 2”
def specialsort(numbers):
list1 = []
list2 = []
list = numbers.split(" ")
for number in list:
if int(number)<0:
list1.append(number)
else:
list2.append(number)
result = list1 + list2
return " ".join(result)
我的问题是:在上面的这个源代码中,当我第一次使用extend
list 函数时result = list1.extend(list2)
,它原来是一个错误说TypeError: can only join an iterable
。当我将它编辑成“result = list1 + list2”时,它终于运行良好了。但是我仍然不明白为什么具有扩展功能的一个不起作用,而另一个却没有问题,因为list1.extend(list2)
返回与'list1 + list2'相同的结果。
如果有人知道这个问题,你能解释一下吗?我真的很感激你的回答。谢谢 :)
解决方案
你的代码:
result = list1 + list2
制作一个新 list
的标签result
,而你以前的:
result = list1.extend(list2)
扩展list1
的内容list2
,所以改变list1
,但是,我怀疑result
标签会以 . 结尾None
。
推荐阅读
- spring-boot - 处理SpringBoot中绑定到@RequestParam的对象抛出的异常
- c# - 如何在我的项目中的任何脚本中添加一行代码?
- c - 什么是 copy_from_user 的简单示例
- regex - 正则表达式中的最小长度
- c# - C# 使用来自 NeGet 的 SimpleTCPIP 与 VS 2019 编译错误 System.Net.IPAddrerss.Parse()
- tensorflow - CoreML 模型规范 - 将输出类型更改为字典
- php - 如果 id 是变量,file_get_contents 从数据库中删除值
- python - 我可以在解释器解析代码之前断言 python 版本吗?
- flutter - 在颤动中操纵视频速度
- java - 无法在 Eclipse IDE for Java 上运行我的代码