关于《Python 基础教程(第2版·修订版)》中一条译者注的异议

最近在利用《Python 基础教程(第2版·修订版)》(人民邮电出版社)学习Python。在阅读至第40页的时候,我对注释第二条(译者注)有些异议。

首先,我同意译者关于 x.sort( ).reverse( ) 的观点,它是不可用的,因为 x.sort( ) 返回 None。但是对于第二条 sorted(x).reverse( ) ,sorted(x) 函数产生的是序列 x 排序后的列表副本,然后对这个副本用 reverse( ) 方法进行逆排序。这样的话并不会报错,但是,reverse( ) 方法返回值为空,因此并不能打印出结果,或是赋值给另一个变量,或是其它我能想到的展示其结果的途径;同时,这个方法修改的是 sorted(x) 函数产生的副本,并没有改变原序列,因此也无法通过原序列的改变显示结果。那么,怎么查看结果呢?怎么存储结果呢?如果都不能,那么我认为 sorted(x).reverse( ) 是没有意义的。代码验证如下:

Code01.py:

>> a = ‘good’
>> sorted(a).reverse()
>> a
‘good’
>> print(sorted(a).reverse())
None
>> b = sorted(a).reverse()
>>

Code02.py:

>> c = [1,2,3]
>> sorted(c).reverse()
>> c
[1, 2, 3]
>> print(sorted(c).reverse())
None
>> d = sorted(c).reverse()
>>

也许是我不明白其中的机制,期待得到回复或指点!


This work by Mandy Wang is licensed under a Creative Commons Attribution-ShareAlike 4.0 International

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s