Python 3 str.join() 保证顺序吗?

问题描述 投票:0回答:2

Python 3(标准实现)是否保证以下代码始终生成字符串

2, 3, 1

', '.join(['2', '3', '1'])

如果是,此功能(订单保持)在哪里记录?

如果不是,可以使用什么函数来获得顺序保持连接?

python string python-3.x
2个回答
8
投票

str.join()
按照您传入的序列列出字符串的顺序连接字符串。

由于您传递的是列表文字并且列表具有固定的顺序,因此您的示例将始终以相同的顺序生成字符串输出,是的。

经验法则:如果订单处理方式有任何不同,

str.join()
文档会明确提及这一点。不按照可迭代提供的顺序连接字符串会......非常令人惊讶,更不用说不是很有用。


0
投票

与普遍看法相反(Python 3.12.0)

>>> list1 = {'1', '2', '3', '4'}
>>> s = " - "
>>> s = s.join(list1)
>>> print(s)
2 - 3 - 1 - 4

想法?

© www.soinside.com 2019 - 2024. All rights reserved.