Walaupun ia telah diterima pakai, ia masih boleh disebut: Apabila saya melihat setdefault ini, saya memikirkan collections.defaultdict Ia lebih berkuasa daripada setdefault Parameter yang diterima boleh menjadi jenis permulaan lalai atau fungsi . Malah, ia boleh menjadi lebih ringkas
from collections import defaultdict
ips = (
(1, '10.121.1.1:4730'),
(2, '127.0.0.1:4730'),
(3, '127.0.0.1:4730')
)
result = defaultdict(list)
for v, k in ips:
result[k].append((v, k))
Di atas ialah tatasusunan, dan di bawah ialah JSON selepas nombor siri dict(). Hanya melintasi tatasusunan dan menggabungkannya ke dalam kamus dan keluarkan JSON.
import json
a = (
(1, '10.121.1.1:4730'),
(2, '127.0.0.1:4730'),
(3, '127.0.0.1:4730')
)
b = dict()
for value in a :
number = value[0]
address = value[1]
if address not in b :
b[address] = []
b[address].append([number, address])
print json.dumps(b)
Berdasarkan cadangan yang diberikan oleh @dokelung dan @松林2 lelaki
Walaupun ia telah diterima pakai, ia masih boleh disebut:
Apabila saya melihat setdefault ini, saya memikirkan collections.defaultdict Ia lebih berkuasa daripada setdefault Parameter yang diterima boleh menjadi jenis permulaan lalai atau fungsi . Malah, ia boleh menjadi lebih ringkas
Di atas ialah tatasusunan, dan di bawah ialah JSON selepas nombor siri dict(). Hanya melintasi tatasusunan dan menggabungkannya ke dalam kamus dan keluarkan JSON.