Добавить в dataclass поле, содержащее список

Имеется список словарей

b = [{'n': 1, 'id': 3, 'animal': [tiger, bear]}, {'n': 4, 'id': 1, 'animal': [tit, sparrow]}, {'n': 1, 'id': 2, 'animal': [perch, herring]}]

Необходимо для него написать dataclass.

Ранее использовала следующую конструкцию:

@dataclass()
class Texts: 
    n: int   
    id: int


b = [Texts(d["n"], d["id"]) for d in texts]

Не понимаю, как добавить поле для списка в класс


Ответы (1 шт):

Автор решения: Елена Сергеева

Чуть более углубившись в поиски ответа, нашла решение:

from dataclasses import dataclass, field
from typing import List

@dataclass()
class Texts:    
    id: int
    text: str
    orig_str: List[str] = field(default_factory=list)


b = [Texts(d["id"], d["text"], d["orig_str"]) for d in texts]
→ Ссылка