将dict列表转换为namedtuples列表的Pythonic方法

2024-05-18 15:18:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个listdict。需要将其转换为namedtuple(首选)的list或简单的tuple,同时用空白分割第一个变量。

还有什么更像Python的方法?

我把代码简化了一点。欢迎理解、gen表达式和itertools用法。

数据输入:

dl = [{'a': '1 2 3',
       'd': '*',
       'n': 'first'},
      {'a': '4 5',
       'd': '*', 'n':
       'second'},
      {'a': '6',
       'd': '*',
       'n': 'third'},
      {'a': '7 8 9 10',
       'd': '*',
       'n': 'forth'}]

简单算法:

from collections import namedtuple

some = namedtuple('some', ['a', 'd', 'n'])

items = []
for m in dl:
    a, d, n = m.values()
    a = a.split()
    items.append(some(a, d, n))

输出:

[some(a=['1', '2', '3'], d='*', n='first'),
 some(a=['4', '5'], d='*', n='second'),
 some(a=['6'], d='*', n='third'),
 some(a=['7', '8', '9', '10'], d='*', n='forth')]

Tags: 方法代码itemssomenamedtupledict空白list

热门问题