蟒蛇加入相当于
我有一本字典说..蟒蛇加入相当于
dict = {
'a' : 'b',
'c' : 'd'
}
在PHP中我会喜欢的东西破灭( '',$字典),并得到输出 'A,B,C,d' 我如何在Python中做到这一点?
这似乎是最简单的方法:
>>> from itertools import chain
>>> a = dict(a='b', c='d')
>>> ','.join(chain(*a.items()))
'a,b,c,d'
你不需要列表()在那里 – 2011-04-29 04:57:46
@gnibbler,确实是固定的。 – 2011-04-29 04:59:35
thx mate。所有我需要:) – 2011-04-29 06:36:42
dictList = dict.items()
这将返回所有项目的列表。
这将返回**对值**(元组或其他) – 2011-04-29 05:03:18
这是不是很优雅,但工作原理:词典词条的这样一个扁平列表上
result=list()
for ind in g:
result.append(ind)
for cval in g[ind]:
result.append(cval)
a=[]
[ a.extend([i,j]) for i,j in dict.items() ]
要么
[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('%s,%s' % i for i in D.iteritems())
这个答案是错误的,因为,而在PHP 关联数组做有一个给定的顺序,词典在Python 不要。以补偿的方式是要么使用一个有序映射类型(如OrderedDict
),或迫使一个明确的顺序:
','.join('%s,%s' % (k, D[k]) for k in ('a', 'c'))
这有二次性能,但如果字典总是很小,可能不此事给你
>>> sum({'a':'b','c':'d'}.items(),())
('a', 'b', 'c', 'd')
注意,dict.items()不保留顺序,以( 'C', 'd', 'A', 'b')也将是一个可能的输出
我知道这是一个古老的问题,但它也很好的说明。
原来的问题是误导。爆()不弄平在PHP关联数组,它加入的值
echo implode(",", array("a" => "b", "c" => "d"))
// outputs b,d
破灭()将是相同的
",".join(dict.values())
# outputs b,d
词典在Python是无序的。只是以为你想知道。 – 2011-04-29 04:46:44
并且为了记录,我不明白downvotes。这是一个有着迷人答案的合法问题。 – 2011-04-29 04:55:32
@Ignacio - 我也想知道。我在下面回答的动机是回答这个问题。如果我的(被认定为不雅)答案是错误的,我会理解为低估。叹息 – mishaF 2011-04-29 04:57:16