连接列表的元素[重复]

Posted

技术标签:

【中文标题】连接列表的元素[重复]【英文标题】:Concatenate elements of a list [duplicate] 【发布时间】:2013-05-07 12:07:34 【问题描述】:

我有一个类似l=['a', 'b', 'c'] 的列表 我想要一个像'abc'这样的字符串。所以其实结果是l[0]+l[1]+l[2],也可以写成

s = ''
for i in l:
    s += i

有什么方法可以更优雅地做到这一点?

【问题讨论】:

【参考方案1】:

使用str.join():

s = ''.join(l)

调用 this 的字符串用作l 中字符串之间的分隔符:

>>> l=['a', 'b', 'c']
>>> ''.join(l)
'abc'
>>> '-'.join(l)
'a-b-c'
>>> ' - spam ham and eggs - '.join(l)
'a - spam ham and eggs - b - spam ham and eggs - c'

使用str.join() 比逐个连接元素要快很多,因为这必须为每个连接创建一个新的字符串对象。 str.join() 只需创建一个新的字符串对象。

请注意,str.join() 将循环输入序列两次。一次计算输出字符串需要多大,然后再次构建它。作为副作用,这意味着使用列表推导而不是生成器表达式会更快:

slower_gen_expr = ' - '.join(': '.format(key, value) for key, value in some_dict)
faster_list_comp = ' - '.join([': '.format(key, value) for key, value in some_dict])

【讨论】:

+1 Q/A 25s 的偏移量很难匹配...... 忍者再次来袭。 一个很好的链接:***.com/questions/3055477/… 我喜欢这个答案对于一个非常基本的问题是如此详细 这是一个闪电般的答案。谢谢! @jamylak:“非常基本”是“非常相对”。 @Tengis Google 搜索非常简单,如果我搜索您的问题标题,我会找到:***.com/questions/5850986/…,此答案列在问题描述中。

以上是关于连接列表的元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

试图将 3 个列表中的元素组合(连接)为一个新列表 [重复]

python找出列表元素重复个数和重复值

Python基础——列表

Python基础——列表

从列表中删除相邻的重复元素[重复]

Python基础(3) - 去掉列表或元组中的重复元素