如果有人能解释我以下内容,我将不胜感激。我是Python和编程方面的最新版本。可能根本就没有意义。
当我使用此片段时,它会返回None:
(in) dic = {'a':1, 'b':2}
(in) print(dic.update({'c':3}))
(out) None
但是当我使用这个时,它会返回更新的dic:
(in) dic = {'a':1, 'b':2}
(in) dic.update({'c':3})
(in) print(dic)
(out) {'a': 1, 'b': 2, 'c': 3}
为什么?为什么我必须完全符合订单?
进一步编辑...... 好。我还不明白。与此代码有任何联系/关系:
(in) lst = [1,3,2,4,6,5]
(in) print(lst.sort())
(in) print(sorted(lst))
(out) None
(out) [1, 2, 3, 4, 5, 6]
在这两种情况下,无论是函数还是方法,都应该对列表进行排序。但 当我通过方法调用print时,它返回None。
(in) lst = [1,3,2,4,6,5]
(in) lst.sort()
(out) print(lst)
答案 0 :(得分:1)
在第一种情况下,您尝试打印dic.update
来电的返回值。没有一个。
在第二种情况下,您将打印修改后的字典本身。
这两个程序基本上完全不同,它与任何"命令"无关。
答案 1 :(得分:1)
type(dic.update({'c':3}))
>>> <class 'NoneType'>
type(dic)
>>> <class 'dict'>
type(sum)
>>> <class 'builtin_function_or_method'>
尝试type(),你会发现差异。一些&#34;功能&#34;返回&#34;无&#34;时更新对象,例如object.append(),object.sort()。
答案 2 :(得分:0)
在没有阅读文档的情况下,我想update
方法确实更新了对象(dic),但没有返回任何内容(None
)。 print
打印update
返回的内容,i。即没有。尝试在第一个print(dic)
之后添加print
。