【发布时间】:2019-05-04 21:39:06
【问题描述】:
抱歉标题不好,但我不知道如何更好地表述它^^。
我要做的是遍历一个对象列表,然后遍历一个list,它是每个对象的成员对象。
所以是这样的:
class FooObj:
def __init__(self):
self.list = [1, "Hello", 3.4] #some list thats unique for each object
objects = [...] # some list of FooObj's
for o in objects:
for e in o.list:
# Do something for each list element
这就是我“传统”的做法。如果有办法将两个 for 循环浓缩为一个,我很感兴趣?
感谢您的帮助^^
【问题讨论】:
-
取决于您要执行的操作。如果您正在检索
list中的list,您可以考虑使用list comprehension。但是,如果您实际上是在子列表上执行某些操作,您不妨坚持这样做。无论哪种方式,您都必须遍历对象列表和属性列表。 -
这取决于您对每个列表元素执行的操作。拥有 2 个
for循环可能是最好的方法。例如,您可以使用列表推导组合两个for循环,但仅在您尝试构建列表时才建议这样做。 -
如果您能举例说明您尝试使用
list做什么,这将有助于澄清您的问题。甚至可能有一些更肮脏的方法可以在没有双循环的情况下实现它。
标签: python python-3.x