如何将此字典转换为列表?

时间:2018-02-13 13:06:10

标签: python list dictionary

说我有这样的词典:

{'AccountNum': '873627867348', 'userID': 'abc'}
{'AccountNum': '873627867348', 'userID': 'def'}
{'AccountNum': '038683828978', 'userID': 'ghi'}
{'AccountNum': '581889263266', 'userID': 'jkl'}
{'AccountNum': '581889263266', 'userID': 'mno'}
{'AccountNum': '581889263266', 'userID': 'pqr'}

我需要将其转换为list,以便打印键和值。实际上我使用Django作为Web框架。我需要返回一个列表并将其呈现到我的模板页面,在那里我将在表格的行中显示用户ID和accountnum。

首选输出样本:

['AccountNum', '873627867348', 'userID', 'abc']

2 个答案:

答案 0 :(得分:3)

如果您想将密钥作为列表,请使用:

list( {'AccountNum': '873627867348', 'userID': 'abc'} )
#['AccountNum', 'userID']

表示值:

list( v for k, v in {'AccountNum': '873627867348', 'userID': 'abc'}.items() )
#['873627867348', 'abc']

两者:

list( {'AccountNum': '873627867348', 'userID': 'abc'}.items() )
#[('AccountNum', '873627867348'), ('userID', 'abc')]

如果你不喜欢使用元组这里采用多于一行的方法:

def dictToList(d):
    l = []
    for k, v in  d.items():
        l.append(k)
        l.append(v)
    return l
dictToList({'AccountNum': '873627867348', 'userID': 'abc'})
# ['AccountNum', '873627867348', 'userID', 'abc']

答案 1 :(得分:0)

使用列表理解如何:

[a for a in(b for a in data.items() for b in a)]

输入:

data={'AccountNum': '873627867348', 'userID': 'abc'}

输出:

['userID', 'abc', 'AccountNum', '873627867348']   

您也可以使用正则表达式

import re
data={'AccountNum': '873627867348', 'userID': 'abc'}

re.findall(r"\'(.*?)\'", str(data) )

输出:

['userID', 'abc', 'AccountNum', '873627867348']