Python中的join等效方法
我有一个字典,比如说……
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'