算法 - 一道python题目:如何把元组编程字典?
ringa_lee
ringa_lee 2017-04-18 09:06:51
0
5
677

问题:

我有一个元组列表:

现在我想把这组元组变成字典的列表,类似的效果是这样:

meat = [
    {
    "地区词":"深圳福田区",
    "品牌词":"TTM全身体检",
    "疑问词":"地址怎么走",
    "价格词":"价格要多少钱"
    },
    {
    "地区词":"深圳保安区",
    "品牌词":"TTM全身体检",
    "疑问词":"地址怎么走",
    "价格词":"要做多少项目"
    },
    .....
        ]

有什么比较方便的方法?

ringa_lee
ringa_lee

ringa_lee

全部回覆(5)
刘奇

@dokelung 的方法可以更簡潔

names = 'area brand question price'.split()
lst = [dict(zip(names, t)) for t in tlst]
大家讲道理
names = 'area brand question price'.split()
lst = [{name:value for name, value in zip(names, t)} for t in tlst]

測驗:

tlst = [('a1','b1','q1','p1'),
        ('a2','b2','q2','p2'),
        ('a3','b3','q3','p3')]
 
names = 'area brand question price'.split()
lst = [{name:value for name, value in zip(names, t)} for t in tlst]

print(lst)

結果:

[{'brand': 'b1', 'area': 'a1', 'question': 'q1', 'price': 'p1'}, {'brand': 'b2', 'area': 'a2', 'question': 'q2', 'price': 'p2'}, {'brand': 'b3', 'area': 'a3', 'question': 'q3', 'price': 'p3'}]

我回答過的問題: Python-QA

迷茫

簡單的寫法:(a是元組組成的陣列)

meat = [{'地区词':t[0], '品牌词':t[1], '疑问词':t[2], '价格词':t[3]} for t in a]

當然你也可以試試用映射的方法,這裡不寫了

Peter_Zhu

為了強行裝逼,使用$lambda$表達式寫個:

list(map(lambda x: {'地区词':x[0], '品牌词':x[1], '疑问词':x[2], '价格词':x[3]}, a))

請忽略我的答案。 。 。

迷茫

樓上正解 組成單獨的字典,然後調用數組的append 就ok了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!