15

我正在尝试使用此处提供的解决方案

除了获取字典,我如何获取具有相同输出的字符串,即字符后跟出现次数

示例:d2m2e2s3

4

5 回答 5

46

要将 dict 转换为所需格式的字符串:

''.join('{}{}'.format(key, val) for key, val in adict.items())

如果您希望它们按字母顺序按键:

''.join('{}{}'.format(key, val) for key, val in sorted(adict.items()))
于 2012-05-06T18:26:59.653 回答
3

这是你想要的?

#!/usr/bin/python

dt={'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}
st=""
for key,val in dt.iteritems():
    st = st + key + str(val)

print st

输出:q5w3d2g2f2

或这个?

#!/usr/bin/python

dt={'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}
dt=sorted(dt.iteritems())
st=""

for key,val in dt:
    st = st + key + str(val)

print st

输出:d2f2g2q5w3

示例join

#!/usr/bin/python

adict=dt={'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}
' '.join('{0}{1}'.format(key, val) for key, val in sorted(adict.items()))

输出:'d2 f2 g2 q5 w3'

于 2012-05-06T18:32:02.900 回答
1

一旦你有了 dict 解决方案,只需使用 join 将它们加入一个字符串:

''.join([k+str(v) for k,v in result.iteritems()])

您可以用''数字之间的任何分隔符(包括无分隔符)替换

于 2012-05-06T18:21:37.477 回答
1
>>> result = {'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}
>>> ''.join('%s%d' % (k,v) for k,v in result.iteritems())
'q5w3d2g2f2'

或者如果你想要它们按字母顺序...

>>> ''.join('%s%d' % (k,v) for k,v in sorted(result.iteritems()))
'd2f2g2q5w3'

或者,如果您希望它们按递增顺序排列...

>>> ''.join('%s%d' % (k,v) for k,v in sorted(result.iteritems(),key=lambda x:x[1]))
'd2g2f2w3q5'
于 2012-05-06T18:27:36.937 回答
-1

另一种方法,通过 仅使用避免%插值(或) :format()join()

''.join(''.join((k, str(v))) for k,v in mydict.items())
于 2016-03-05T09:21:11.973 回答