在调用子函数时,可以传入基对象吗?
我在下面这段代码中遇到了一个错误,并找到了原因:
myset = set(["A", "C", "B"])
# Original Code: Fails output: None
print(list(myset).sort())
list.sort() 是就地排序,且没有返回值,这段代码把sort() 的返回值传给print;这就是这段代码不能正常工作的原因。
要修复它,显然我可以使用sorted函数,或者自己实现一个:
# Method 1: Works out: ['A', 'B', 'C']
print(sorted(myset))
# Method 2: Works out: ['A', 'B', 'C']
def mysetsort(s):
l = list(s)
l.sort()
return l
print(mysetsort(s))
是否有一种方法,可以沿用原本有缺陷的内联实现思路,即对cast得到的临时列表使用sort(),但传入/返回该临时的(已排序)对象?
解决方案
正如你所说:
使用 sorted(),如果你想就地排序元素或获得一个新的list实例。
另一方面,array.sort() 会对 array 进行排序,但返回 None。如果你想对一个变量进行排序,或不需要创建一个新的list实例,就用它。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。