【问题标题】:Converting lists to list of dictionaries将列表转换为字典列表
【发布时间】:2020-05-23 13:46:25
【问题描述】:

我有以下五个列表:

a = ['RA CROXE-14156', 'RA CROXE-14084', ]
b = ['CR','ENGINEER_NAME','DESCRIPTION','BINARIES']
c = ['John', 'Mark']
d = ['M4 Hiding Emergency Group from mgr menu', 'M4-NRT: SQLCODE_-11300', ]
e = ['TEL', 'mao.SYM']

我需要像这样创建一个字典列表:

CRS = [
{
      'CR': 'RA CROXE-14156'
      'ENGINEER_NAME': 'John', 
      'DESCRIPTION': 'M4 Hiding Emergency Group from mgr menu',
      'BINARIES': 'TEL'
},
{  
      'CR': 'RA CROXE-14084'
      'ENGINEER_NAME': 'MARK', 
      'DESCRIPTION': 'M4-NRT: SQLCODE_-11300', 
      'BINARIES': 'mao.SYM'
}
]

我需要将五个列表转换为字典列表。我该怎么做?

【问题讨论】:

    标签: python python-3.x list dictionary


    【解决方案1】:

    您可以使用以下列表/字典推导式,使用 zip() 和 enumerate():

    >>> CRS = [{b[i]: v for i, v in enumerate(x)} for x in zip(a,c,d,e)]
    >>> CRS
    [{'CR': 'RA CROXE-14156',
      'ENGINEER_NAME': 'John',
      'DESCRIPTION': 'M4 Hiding Emergency Group from mgr menu',
      'BINARIES': 'TEL'},
     {'CR': 'RA CROXE-14084',
      'ENGINEER_NAME': 'Mark',
      'DESCRIPTION': 'M4-NRT: SQLCODE_-11300',
      'BINARIES': 'mao.SYM'}]
    

    【讨论】:

      【解决方案2】:

      您可以将zip 与dict 一起使用:

      a = ['RA CROXE-14156', 'RA CROXE-14084', ]
      b = ['CR','ENGINEER_NAME','DESCRIPTION','BINARIES']
      c = ['John', 'Mark']
      d = ['M4 Hiding Emergency Group from mgr menu', 'M4-NRT: SQLCODE_-11300', ]
      e = ['TEL', 'mao.SYM']
      result = [dict(zip(b, i)) for i in zip(a, c, d, e)]
      

      输出:

      [{'CR': 'RA CROXE-14156', 'ENGINEER_NAME': 'John', 'DESCRIPTION': 'M4 Hiding Emergency Group from mgr menu', 'BINARIES': 'TEL'}, {'CR': 'RA CROXE-14084', 'ENGINEER_NAME': 'Mark', 'DESCRIPTION': 'M4-NRT: SQLCODE_-11300', 'BINARIES': 'mao.SYM'}]
      

      【讨论】:

        猜你喜欢
        • 2017-04-23
        • 2021-10-13
        • 2015-07-23
        • 1970-01-01
        • 2014-01-20
        • 2019-06-11
        • 1970-01-01
        相关资源
        最近更新 更多