为什么str(反向(...))不能给我反转的字符串?

Yun*_*nti 6 python string iterator list

我正在尝试习惯迭代器.为什么我输入

b = list(reversed([1,2,3,4,5]))
Run Code Online (Sandbox Code Playgroud)

它会给我一个反向列表,但是

c = str(reversed('abcde'))
Run Code Online (Sandbox Code Playgroud)

不会给我一个反转的字符串?

the*_*eye 9

在Python中,reversed实际上返回一个反向迭代器.因此,list应用于迭代器将为您提供列表对象.

在第一种情况下,输入也是一个列表,因此listreversed迭代器上应用的结果似乎适合您.

在第二种情况下,str应用于返回的迭代器对象实际上将为您提供它的字符串表示形式.

相反,你需要迭代迭代器中的值并将它们全部与str.join函数连接起来,就像这样

>>> ''.join(reversed('abcde'))
edcba
Run Code Online (Sandbox Code Playgroud)