python join等价

Rob*_* P. 8 python join

我有一本字典说..

dict = {
    'a' : 'b',
    'c' : 'd'
}
Run Code Online (Sandbox Code Playgroud)

在PHP中我会像implode(',',$ dict)那样得到输出'a,b,c,d'我如何在python中做到这一点?

Dan*_*uev 6

这似乎是最简单的方法:

>>> from itertools import chain
>>> a = dict(a='b', c='d')
>>> ','.join(chain(*a.items()))
'a,b,c,d'
Run Code Online (Sandbox Code Playgroud)

  • 避免创建中间列表:`','.join(chain.from_iterable(a.iteritems()))` (3认同)

Ign*_*ams 5

一,错误的答案:

','.join('%s,%s' % i for i in D.iteritems())
Run Code Online (Sandbox Code Playgroud)

这个答案是错误的,因为虽然PHP中的关联数组确实有给定的顺序,但Python中的字典却没有.补偿的方法是使用有序映射类型(例如OrderedDict),或强制显式顺序:

','.join('%s,%s' % (k, D[k]) for k in ('a', 'c'))
Run Code Online (Sandbox Code Playgroud)