从对象的项目中创建项目列表

时间:2017-06-28 09:29:49

标签: python-2.7 list

我有一个对象列表,每个对象都有一个列表。我希望创建一个包含在所有对象中的东西的列表。有更多的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

1 个答案:

答案 0 :(得分:1)

你可以:

  1. Holder继承自list然后这变得非常简单。

  2. 使用extend代替append,这将为您节省显式循环:

    all_things = []
    for holder in holders:
        all_things.extend(holder.things)
    print all_things