Python中的join等效方法

9 投票
9 回答
4328 浏览
提问于 2025-04-16 16:38

我有一个字典,比如说……

dict = {
    'a' : 'b',
    'c' : 'd'
}

在PHP中,我可以用类似 implode ( ',', $dict ) 的方法,得到输出 'a,b,c,d'。那在Python中我该怎么做呢?

9 个回答

4

可以使用字符串的 join 方法来处理一个扁平化的字典项列表,像这样:

",".join(i for p in dict.items() for i in p)

另外,你可能还想使用 OrderedDict

5

首先,来看一个错误的答案:

','.join('%s,%s' % i for i in D.iteritems())

这个答案是错的,因为虽然PHP中的关联数组是有顺序的,但Python中的字典却没有顺序。要解决这个问题,可以使用一种有顺序的映射类型(比如OrderedDict),或者强制指定一个明确的顺序:

','.join('%s,%s' % (k, D[k]) for k in ('a', 'c'))
6

这看起来是最简单的方法:

>>> from itertools import chain
>>> a = dict(a='b', c='d')
>>> ','.join(chain(*a.items()))
'a,b,c,d'

撰写回答