s = '12345'
iterator = reversed(s)
print(iterator) #
print(list(iterator)) # ['5', '4', '3', '2', '1']
以上為運結果
問題01 : 為什麼會得出?
問題02 : 為什麼是這結果['5', '4', '3', '2', '1'], 以不是54321?
字符串是由多个字符组成的,而每一个字符都可以看做原本字符串的子串,如“1”是“12345”的子串。
s = '12345'
iterator = reversed(s)
经过以上两步后s将变为“54321”,这是由于reversed函数功能为字符串倒置并且返回值是string类型。
print(iterator) #
输出倒置后返回的结果“54321”
print(list(iterator)) # ['5', '4', '3', '2', '1']
这部将倒置后的字符串强制转换为list类型,而string转list取string的最小元素(每一个字符)为自己的元素。所以输出为 ['5', '4', '3', '2', '1']
因为字符串也是可遍历的
运行下面的代码就明白了
for i in s:
print(i)
reversed () 底层就是对给定序列的值返回一个反向迭代器。, 既然是迭代器肯定也就是可迭代对象, 所以, 必须循环遍历,或者iter, 去取值, 又或者list 强转, 所以你的list() 强转出来的肯定是列表啊, 不是字符串