我有一本字典说..
dict = {
'a' : 'b',
'c' : 'd'
}
在php中我会喜欢implode(',',$ dict)并获得输出'a,b,c,d' 我怎么在python中做到这一点?
答案 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)
答案 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()
这将返回所有项目的列表。