我来自R背景,我对以下内容感到困惑:
假设我以变量txt中保存的列表格式"hello" .从而
txt= ['h','e','l','l','o']
Run Code Online (Sandbox Code Playgroud)
经过一些测试,以下工作:
txt.reverse()
"."join(txt)
Run Code Online (Sandbox Code Playgroud)
并按预期生产olleh.
但是,以下就不能正常工作:
"".join(txt.reverse())
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误.我很好奇为什么会这样,因为我认为我可以在函数调用中"嵌套"函数调用?
谢谢你的帮忙!
问题是该reverse()函数没有返回有用的值(它返回None),因为它会就地反转列表,以避免创建新的输出列表.所以这:
"".join(txt.reverse())
Run Code Online (Sandbox Code Playgroud)
......会尝试加入None,这显然会失败.
作为就地函数,reverse列表的方法总是返回None:
>>> a = [1, 2]
>>> print a.reverse()
None
>>> a
[2, 1]
>>>
Run Code Online (Sandbox Code Playgroud)
您可以使用reversed内置函数获得所需的行为:
>>> a = ['a', 'b']
>>> "".join(reversed(a))
'ba'
>>> a
['a', 'b']
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |