使用for时可能返回dict列表而不是列表? Django的

时间:2017-11-03 01:03:52

标签: python arrays django list dictionary

我有一个返回列表的代码,看起来像这样

[user.name for user in Model.field.filter()]

我知道这会返回一个用户名列表,但我想知道是否可以返回list的{​​{1}}?

,例如

dict

2 个答案:

答案 0 :(得分:1)

一种简单的方法是为列表理解中的每个条目构建一个dict

e.g。

[{'name':user.name, 'email': user.email} for user in Model.field.filter()]

答案 1 :(得分:0)

字典会有唯一的键,您可以在其中列出' name'和'电子邮件'如果你要重复许多名字/电子邮件,那就行不通了。没有提到你不能回归'但是,如果是列表中的字典,您可以create one。现在,如果你有你的名字和电子邮件的密钥,那么dict就会像namedict = {"key1":"name1","key2":"name2"}一样创建。我会把它分成两个序列,一个用于名称,一个用于电子邮件。只有这样你才能通过namedict["key1"]

从字典中返回一个名字

如果您的姓名"变量不是那么变量;)(就像你想要的那样"名称"对于你的每一个独特" name1"然后我认为使用pandas数据帧会更理想。这种方式您只需要添加" name"一次,作为名称列表的标题,并且可以将其与电子邮件放在同一个变量中,您也可以在其中执行相同的操作。您make a dataframe by去:

d= {'name': ["name1", "name2"], 'email': ["email1", "email2"]}
df = pd.DataFrame(data=d)

我包含了dict部分来回答你的实际问题但总的来说,我可以看到,数据框架更适合你的目的。