假设我有一个词典:
{
'a':'vala',
'b':'valb',
'c':'valc'
}
我想将其转换为字符串:
"a='vala' , b='valb' c='valc'"
到达那里的最佳方式是什么?我想做点什么:
mystring = ""
for key in testdict:
mystring += "{}='{}'".format(key, testdict[key]).join(',')
答案 0 :(得分:4)
您可以将str.join
与生成器表达式一起使用。请注意,字典没有任何订单,因此这些项目将被任意订购:
{!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
答案 1 :(得分:2)
关闭! testdict ={
'a':'vala',
'b':'valb'
}
mystring = []
for key in testdict:
mystring.append("{}='{}'".format(key, testdict[key]))
print ','.join(mystring)
用于将字符中的项目连接在一起,因此您需要将这些项目附加到列表中,然后通过末尾的逗号将它们连接在一起,如下所示:
mysql -uforge -p
Enter password: thepassword
答案 2 :(得分:0)
好吧,如果你想得到一个排序结果:
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'
答案 3 :(得分:0)
" , ".join( "%s='%s'"%(key,val) for key,val in mydict.items() )