我有一本字典說..蟒蛇加入相當於
dict = {
'a' : 'b',
'c' : 'd'
}
在PHP中我會喜歡的東西破滅( '',$字典),並得到輸出 'A,B,C,d' 我如何在Python中做到這一點?
我有一本字典說..蟒蛇加入相當於
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)
+1 - 就像您的解決方案。 – manojlds 2011-04-29 05:01:03
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