advancedplayer 发表于 2021-11-14 15:47:20

序列翻转问题

x = "小甲鱼是老污龟"
>>> y = list(x)
>>> z = y.reverse()
>>> y
['龟', '污', '老', '是', '鱼', '甲', '小']
>>> z
>>> print(z)
None

z为什么无法赋值

Stubborn 发表于 2021-11-14 15:49:46

reverse()是没有返回值,所以是None

heidern0612 发表于 2021-11-14 16:52:40

reverse只是方法,没有返回值。

想有返回值,可以参考使用reversed。

戳我前进使用方法

傻眼貓咪 发表于 2021-11-14 17:59:47

reverse 只是翻转函数,没有返回值(值是 None)

解法 1:
y = list(x)
y.reverse() # 先翻转
z = y # 后赋值

解法 2:
x =
z = list(reversed(x)) # 注:这里用的是 reversed 不是 reverse(结尾有 d)
print(z)

沈志远 发表于 2021-11-21 17:49:16

list 中的翻转方法 .reverse() ,是没有返回值的。
翻转过程相当于 , 将 列表的值拿出来翻转后,在写入变量中,没有返回值,故为 None 。

>>> a = list("小甲鱼是老污龟")               此处将 str类型 值 转为 list 类型
>>> a.reverse()                                       此处翻转 a列表
>>> a                                                      a 被翻转
['龟', '污', '老', '是', '鱼', '甲', '小']
>>> c = a.reverse()                              此处 将 a.reverse() 的返回值 赋值给 c
>>> c                                                   查看 c 中内容为None,由于机制 ,直接在此处展示新的命令行。因为什么都没有在这里重开么,也算合理。
>>> print(a.reverse())                           此处打印 a.reverse() 的返回值,结果为 None
None
页: [1]
查看完整版本: 序列翻转问题