python join等价

时间:2011-04-29 04:44:01

标签: python join

我有一本字典说..

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

在php中我会喜欢implode(',',$ dict)并获得输出'a,b,c,d' 我怎么在python中做到这一点?

9 个答案:

答案 0 :(得分:6)

这似乎是最简单的方法:

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

答案 1 :(得分:5)

首先,错误回答:

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

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

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

答案 2 :(得分:4)

在字典项目的拼合列表中使用字符串join,如下所示:

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

此外,您可能希望使用OrderedDict

答案 3 :(得分:2)

这具有二次性能,但如果字典总是很小,那对你来说可能无关紧要

>>> sum({'a':'b','c':'d'}.items(), ())
('a', 'b', 'c', 'd')

请注意,dict.items()不保留顺序,因此('c','d','a','b')也可能是输出

答案 4 :(得分:1)

a=[]
[ a.extend([i,j]) for i,j in dict.items() ]

答案 5 :(得分:1)

无论

[value for pair in {"a": "b", "c" : "d"}.iteritems() for value in pair]

(lambda mydict: [value for pair in mydict.iteritems() for value in pair])({"a": "b", "c" : "d"}) 

<强>解释

简化此示例将返回mydict

中每对的每个值

编辑:还在这些周围添加一个“,”。join()。我没有正确地阅读你的问题

答案 6 :(得分:1)

我知道这是一个老问题,但也值得注意。

原始问题具有误导性。 implode()不会在PHP中展平关联数组,它会加入值

echo implode(",", array("a" => "b", "c" => "d"))
// outputs b,d

implode()与

相同
",".join(dict.values())
# outputs b,d

答案 7 :(得分:0)

这不是很优雅,但有效:

result=list()
for ind in g:
   result.append(ind)
   for cval in g[ind]:
       result.append(cval)

答案 8 :(得分:-1)

dictList = dict.items()

这将返回所有项目的列表。

相关问题