Проблема в том, как вы перебираете
featList = [[Feature() for j in range(3)] for i in range(10)]
список списков функций
a = [f for f in [r for r in featList]]
a
- это список списков функций (все еще), вы можете сделать этотаким образом
a = [ f for r in featList for f in r]
a Это список f, так что теперь вы можете делать то, что хотели.
[ print(str(f)) for r in featList for f in r]
Если вы видите последнюю часть раздела «Понимание списка» на Документы Python
вы увидите пример для такого случая (понимание двойного списка)
воспринимайте его как обычный for
# Regular for
for a in A
for b in A
f(b)
# Comprehended Loop
a = ( f(b) for a in A for b in a)
Это почти тот же порядок, за исключением утверждения.