Skip to main content
 首页 » 编程设计

python之将元组列表更改为字典(pythonic 方式)

2025年05月04日13thcjp

这更像是一个最佳实践问题。我创建的内容运行良好,但我很好奇是否有更短的方法可以从我当前的数据结构中创建字典。

我正在从 SQLite 数据库中读取表格,数据以元组列表的形式返回。 例如

[(49, u'mRec49', u'mLabel49', 1053, 1405406806822606L, u'1405406906822606'),  
(48, u'mRec48', u'mLabel48', 1330, 1405405806822606L, u'1405405906822606'),  
(47, u'mRec47', u'mLabel47', 1220, 1405404806822606L, u'1405404906822606')... 
]  

我想获取列表-元组结构的每一列,将其放入列表中,从数据库中获取列名并将其用作保存列表的键。后来我把我的字典变成了 JSON。

这是我草拟的函数,它完成了工作,我不禁想知道是否有更好的方法来做到这一点。

def make_dict(columns, list_o_tuples): 
    anary = {} 
    for j, column in enumerate(columns): 
        place = [] 
        for row in list_o_tuples: 
            place.append(row[j]) 
        anary[column] = place 
    return anary 
 
make_dict(mDBTable.columns, mDBTable.get_table()) 

注意:该函数不应该关心它所呈现的表格,或者表格中的数字或行和列。

请您参考如下方法:

看来你想转置list_o_tuples:

transpose = zip(*list_o_tuples) 

然后用列名压缩:

return dict(zip(columns, transpose))