Tôi đang cố gắng sử dụng các giải pháp cung cấp hereLàm thế nào để chuyển đổi từ điển vào chuỗi
Thay vì nhận được một cuốn từ điển, làm thế nào tôi có thể nhận được một chuỗi với cùng kí tự ra ví dụ tiếp theo là số lần xuất hiện
Ví dụ: d2m2e2s3
Tôi đang cố gắng sử dụng các giải pháp cung cấp hereLàm thế nào để chuyển đổi từ điển vào chuỗi
Thay vì nhận được một cuốn từ điển, làm thế nào tôi có thể nhận được một chuỗi với cùng kí tự ra ví dụ tiếp theo là số lần xuất hiện
Ví dụ: d2m2e2s3
Để chuyển đổi từ dict vào chuỗi ở định dạng mà bạn muốn:
''.join('{}{}'.format(key, val) for key, val in adict.items())
nếu bạn muốn họ theo thứ tự abc lệnh của chính:
''.join('{}{}'.format(key, val) for key, val in sorted(adict.items()))
Tôi muốn các chữ cái theo sau bởi mỗi lần nó xuất hiện trong chuỗi gốc theo thứ tự. – TechacK
Tôi đã thử python 2.6, ValueError: tên trường có độ dài bằng 0 theo định dạng. nên là '' .join ('{0} {1}' định dạng (khóa, val) cho khóa, val trong adict.items()) –
một khi bạn có giải pháp dict, chỉ cần sử dụng tham gia tham gia cùng họ vào một chuỗi:
''.join([k+str(v) for k,v in result.iteritems()])
Bạn có thể thay thế các ''
với bất cứ điều gì separater (kể cả không có) mà bạn muốn giữa số
>>> result = {'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3}
>>> ''.join('%s%d' % (k,v) for k,v in result.iteritems())
'q5w3d2g2f2'
hoặc nếu bạn muốn họ theo thứ tự abc ...
>>> ''.join('%s%d' % (k,v) for k,v in sorted(result.iteritems()))
'd2f2g2q5w3'
hoặc nếu bạn muốn họ trong thứ tự tăng dần của số ...
>>> ''.join('%s%d' % (k,v) for k,v in sorted(result.iteritems(),key=lambda x:x[1]))
'd2g2f2w3q5'
Tôi muốn các chữ cái theo sau bởi mỗi lần nó xuất hiện trong chuỗi gốc theo thứ tự – TechacK
Đây có phải là những gì bạn đang tìm kiếm?
#!/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
đầu ra: q5w3d2g2f2
Hoặc này?
#!/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
đầu ra: d2f2g2q5w3
Ví dụ với 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()))
đầu ra: 'd2 f2 g2 q5 w3'
cách tiếp cận khác, tránh %
suy (hoặc format()
) bằng cách sử dụng join()
chỉ:
''.join(''.join((k, str(v))) for k,v in mydict.items())
Bạn muốn định dạng chuỗi như thế nào? – Amber
Bạn có thể giải thích đầu vào và đầu ra không? Bạn đang cố gắng tạo chuỗi từ từ điển 'Out [25]: {'d': 2, 'f': 2, 'g': 2, 'q': 5, 'w': 3} ' – shibly
I muốn đầu ra là d2f2g2q5w3 – TechacK