为什么有些方法可以应用于对象并在变量中定义它,但对于某些方法,我们不能?[复制]

Why some methods we can apply to an object and define it in a variable, but for some we cant? [duplicate]

提问人:Hardliner 提问时间:3/3/2023 最后编辑:EthanHardliner 更新时间:3/19/2023 访问量:54

问:

如果我们有一个文件,我们可以读取行并将其存储在变量中。如:

with open('test.py', 'r') as file:
    f = file.readlines()

但是,对于某些方法,我们无法将其添加到对象(对其进行排序)并存储在变量中:

cars = ['Ford', 'BMW', 'Volvo']
y = cars.sort()
print(y)

我们应该做:

cars = ['Ford', 'BMW', 'Volvo']
cars.sort()
print(cars)

为什么? 是的,这可能是一个平庸的问题,但是,没有平庸的问题就没有学习。

Python 变量 方法

评论

1赞 John Gordon 3/3/2023
.readlines()返回一个值,但不返回。就这么简单。(嗯,确实如此,但它始终是 None。.sort()
0赞 John Gordon 3/3/2023
其目的是就地对列表进行排序。您可以在示例中使用。.sort()sorted()
0赞 Hardliner 3/3/2023
哈哈,我读了你的第一条消息,开始思考 None,错过了这句话的其余部分。我一直在想,当很多符号都放在括号里时,比如 0x<239233294944> 和 None 有什么区别?等等,等等,当然,我明白了。谢谢!

答:

1赞 Unmitigated 3/3/2023 #1

sort就地修改实例,使其不返回任何内容。改变方法不返回任何内容(即 )。listNone

可用于创建列表的排序副本y = sorted(cars)cars

评论

0赞 Shorn 3/3/2023
此外,某些函数支持带有标志的突变和非突变。我认为有一个 inplace 标志来决定它是否就地排序并默认为 .pandas.DataFrame().sort()False