如何优雅地.join() 一个字符串和一个列表?

how to elegantly .join() a string and a list?

我需要连接两个字符串:

In [1]: a = "hello"
In [2]: b = "world"
In [4]: ' '.join((a, b))
Out[4]: 'hello world'

既然b = ["nice", "world"],还有比

更优雅的东西吗
In [7]: ' '.join((a, ' '.join(b)))
Out[7]: 'hello nice world'

将所有元素(字符串和列表的元素)连接成一个 space 分隔字符串?

您可以简单地使用连接来加入。

In [248]: a = "hello"

In [249]: b = ["nice", "world"]
In [252]: a + " " + ' '.join(b)
Out[252]: 'hello nice world'

或者简单地使用格式化字符串。(如果列表有限)

In [254]: '{0} {1} {2}'. format(a, b[0], b[1])
Out[254]: 'hello nice world'

或者somehow better way是:-

In [255]: '{0} {1[0]} {1[1]}'. format(a, b) 
Out[255]: 'hello nice world'
In [3]: ' '.join([a]+b)
Out[3]: 'hello nice world'

或者,如果您担心创建中间列表的成本,或者如果 b 根本不是一个列表,而是一些迭代器:

In [9]: ' '.join(itertools.chain([a],b))
Out[9]: 'hello nice world'