循环遍历字符串时是否保证执行顺序?

Sup*_*est 3 python for-loop python-3.x order-of-execution

以下程序是否保证始终产生相同的输出?

s = 'fgvhlsdagfcisdghfjkfdshfsal'
for c in s:
    print(c)
Run Code Online (Sandbox Code Playgroud)

Jim*_*ard 5

是的.这是因为str类型是不可变的序列.序列表示有限的有序元素集(请参阅参考指南的数据模型章节中的序列).

对于CPython解释器的不同运行,CPython的版本和Python的实现,保证通过给定字符串(任何序列)的迭代总是以相同的顺序产生相同的结果.