2 回答

TA贡献1859条经验 获得超6个赞
问题是你如何迭代
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]
这是一个 f 的列表,所以现在你可以做你想做的。
[ print(str(f)) for r in featList for f in r]
如果您在Python 的文档中看到 List Comprehension 部分的最后一部分
你会看到这个例子,对于这样的情况(双重列表理解)
把它当作常规 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)
除了语句之外,它的顺序几乎相同。

TA贡献1859条经验 获得超6个赞
它适用于列表理解,但你应该重写你的列表理解
[print(f) for r in featList for f in r]
如果你想跑
[print(str(f)) for f in [r for r in featList]]
比你可以实现__repr__的Feature:
def __repr__(self) -> str:
return 'f'
希望它会帮助你:)
添加回答
举报