我正在尝试适应迭代器。为什么输入
b = list(reversed([1,2,3,4,5]))
它会给我一个相反的列表,但是
c = str(reversed('abcde'))
不会给我一个反向字符串吗?
最佳答案
在Python中, reversed
实际上返回一个反向迭代器。因此,应用于迭代器的 list
将为您提供列表对象。
在第一种情况下,输入也是一个列表,因此将list
应用于reversed
迭代器的结果对您来说似乎合适。
在第二种情况下,应用于返回的迭代器对象的 str
实际上将为您提供它的字符串表示形式。
相反,您需要迭代迭代器中的值,并使用 str.join
函数将它们全部连接起来,如下所示
>>> ''.join(reversed('abcde'))
edcba