我正在尝试适应迭代器。为什么输入

b = list(reversed([1,2,3,4,5]))

它会给我一个相反的列表,但是
c = str(reversed('abcde'))

不会给我一个反向字符串吗?

最佳答案

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

在第一种情况下,输入也是一个列表,因此将list应用于reversed迭代器的结果对您来说似乎合适。

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

相反,您需要迭代迭代器中的值,并使用 str.join 函数将它们全部连接起来,如下所示

>>> ''.join(reversed('abcde'))
edcba

10-07 22:38