cari

Rumah  >  Soal Jawab  >  teks badan

python 中如何格式化数据

(
    (1, '10.121.1.1:4730'), 
    (2, '127.0.0.1:4730'),
    (3, '127.0.0.1:4730')
)

如何格式化为以下格式 用python

{
    '10.121.1.1:4730':
        [(1, '10.121.1.1:4730')], 
    '127.0.0.1:4730':
        [(2, '127.0.0.1:4730'), (3, '127.0.0.1:4730')]
}
天蓬老师天蓬老师2837 hari yang lalu648

membalas semua(3)saya akan balas

  • 高洛峰

    高洛峰2017-04-17 17:55:37

    Berdasarkan cadangan yang diberikan oleh @dokelung dan @松林2 lelaki

    ips = (
        (1, '10.121.1.1:4730'),
        (2, '127.0.0.1:4730'),
        (3, '127.0.0.1:4730')
    )
    
    dic = {}
    for v, k in ips:
        dic.setdefault(k, []).append((v, k))
    
    print dic

    balas
    0
  • PHP中文网

    PHP中文网2017-04-17 17:55:37

    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))
    

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:55:37

    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)

    balas
    0
  • Batalbalas