我有一个对象列表,每个对象都有一个列表。我希望创建一个包含在所有对象中的东西的列表。有更多的pythonic方式吗?
class Holder(object):
def __init__(self, things):
self.things = things
holder_one= Holder([1, 2])
holder_two = Holder(['a', 'b'])
holders = [holder_one, holder_two]
all_things = []
for holder in holders:
for thing in holder.things:
all_things.append(thing)
print all_things
答案 0 :(得分:1)
你可以:
让Holder
继承自list
然后这变得非常简单。
使用extend
代替append
,这将为您节省显式循环:
all_things = []
for holder in holders:
all_things.extend(holder.things)
print all_things