簡體   English   中英

如何將字典轉換為字符串?

[英]How to convert a dict to string?

假設我有一個命令:

{
'a':'vala',
'b':'valb',
'c':'valc'
}

我想將其轉換為字符串:

"a='vala' , b='valb' c='valc'"

到達那里的最佳方法是什么? 我想做類似的事情:

mystring = ""
for key in testdict:
  mystring += "{}='{}'".format(key, testdict[key]).join(',')

您可以將str.join與生成器表達式結合使用。 請注意,字典沒有任何順序,因此項目將被任意排序:

>>> dct = {'a':'vala', 'b':'valb'}
>>> ','.join('{}={!r}'.format(k, v) for k, v in dct.items())
"a='vala',b='valb'"

如果您想使用引號引起來,而不管它們的類型如何,請將{!r}替換為'{}' 顯示差異的示例:

>>> dct = {'a': 1, 'b': '2'}
>>> ','.join('{}={!r}'.format(k, v) for k, v in dct.items())
"a=1,b='2'"
>>> ','.join("{}='{}'".format(k, v) for k, v in dct.items())
"a='1',b='2'"

關! .join用於通過字符將一個可迭代的項目連接在一起,因此您需要將這些項目附加到列表中,然后以逗號結尾將它們連接在一起,如下所示:

testdict ={
'a':'vala',
'b':'valb'
}
mystring = []
for key in testdict:
  mystring.append("{}='{}'".format(key, testdict[key]))

print ','.join(mystring)

好吧,就算您想要一個排序結果:

d={'a':'vala', 'b':'valb', 'c':'valc'}
st = ", ".join("{}='{}'".format(k, v) for k, v in sorted(d.items()))
print(st)

結果

a='vala', b='valb', c='valc'
" , ".join( "%s='%s'"%(key,val) for key,val in mydict.items() ) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM