【发布时间】:2014-04-01 13:55:22
【问题描述】:
在 Python 中,字符串列表可以通过以下方式连接在一起
','.join(['ab', 'c', 'def'])
但是我怎样才能轻松地加入数字列表或其他一些东西呢?像这样:
0.join([1, 2, 3]) ---> [1, 0, 2, 0, 3]
现在我必须这样做:
sum([[x, 0] for x in [1, 2, 3]], [])[:-1]
【问题讨论】:
-
简短回答:不。
-
请注意,您所描述的是不同的操作:
str.join通过交错和连接将字符串列表转换为字符串,您的广义连接会将 x 列表转换为通过仅交错而不连接的 x 列表。连接部分是join是字符串方法而不是列表方法的全部原因。 -
您可能希望
[0].join([[1,2,3], [4,5], [6,7,8]])代表相同的功能。 -
请注意 - 您的示例代码使用
sum()加入列表 - 这通常是一个非常糟糕的主意,因为sum()没有针对该任务进行优化。查看 RemcoGerlich 的生成器,了解执行此操作的最佳方法。对于加入许多列表的一般情况 - 你想要itertools.chain()(如果你需要一个列表,请在结果生成器上使用list())。
标签: python