繁体   English   中英

Python 中的词典理解列表

[英]list of dictionary comprehension in Python

我有一个名为 Question 的 class。 我有一个字典列表,我想将这些数据添加到另一个名为 questions_bank 的列表中。 我已经使用 for 循环和 append 方法做到了这一点。 但我想用字典理解来做到这一点。 有什么办法吗?

class Question:
    def __init__(self, text, answer):
        self.text = text
        self.answer = answer


data = [
    {
        "question": "question 1",
        "answer": True
    },
    {
        "question": "question 2",
        "answer": False
    }

]
question_bank = []

for value in data:
    question_bank.append(Question(value["text"], value["answer"]))

使用dataclass更干净

from dataclasses import dataclass

@dataclass
class Question:
        question: str
        answer :bool

data = [
    {
        "question": "question 1",
        "answer": True
    },
    {
        "question": "question 2",
        "answer": False
    }

]
question_bank = [Question(**q) for q in data]
print(question_bank)

output

[Question(question='question 1', answer=True), Question(question='question 2', answer=False)]

对您的 for 循环的等效列表理解是

>>> question_bank = [Question(i['question'], i['answer']) for i in data]
>>> question_bank
[<__main__.Question object at 0x0000020E4E62E9C8>, <__main__.Question object at 0x0000020E4E6B2888>]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM