【问题标题】:How to concat key and value from dictionary to list?如何将字典中的键和值连接到列表?
【发布时间】:2019-10-06 03:33:17
【问题描述】:

我正在尝试连接字典中的键和值,我想根据键将它们放入子列表中;但我没有成功。到目前为止我所拥有的(在 Python 2.7 上工作):

我设法将键和值连接起来,但没有将它们拆分到不同的子列表中。

dict = {'v1':[1, 2, 3], 'v2': [1, 2, 3, 4]}

concat = []
for key in dict.keys():
    vals = dict [key]
    for v in vals:
        concat.append(str(key + '_' + str(v)))

我明白了:

 ['v1_1', 'v1_2', 'v1_3', 'v2_1', 'v2_2', 'v2_3', 'v2_4']

但我想:

[['v1_1', 'v1_2', 'v1_3'], ['v2_1', 'v2_2', 'v2_3', 'v2_4']]

【问题讨论】:

    标签: python python-2.7 list dictionary concat


    【解决方案1】:
    dict = {'v1':[1, 2, 3], 'v2': [1, 2, 3, 4]}
    res=[]
    for key in dict.keys():
        vals = dict [key]
        res.append([ key+'_'+str(v) for v in vals])
    

    【讨论】:

      【解决方案2】:

      您可以使用此列表推导。 Python 3.6+。

      >>> [[ f'{k}_{x}' for x in dict[k] ] for k in dict]
      [['v1_1', 'v1_2', 'v1_3'], ['v2_1', 'v2_2', 'v2_3', 'v2_4']]
      

      或者对于 Python

      >>> [[ '%s_%d' % (k,x)  for x in d[k] ] for k in d]
      [['v1_1', 'v1_2', 'v1_3'], ['v2_1', 'v2_2', 'v2_3', 'v2_4']]
      

      【讨论】:

        【解决方案3】:

        您在for 循环的两个级别上都附加到同一个列表。改成

        for key in dict.keys():
            sublist = []
            vals = dict [key]
            for v in vals:
                sublist.append(str(key + '_' + str(v)))
            concat.append(sublist)
        

        【讨论】:

          猜你喜欢
          • 2020-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-20
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 2013-09-28
          相关资源
          最近更新 更多