【问题标题】:Creating a random number of class objects in python在python中创建随机数量的类对象
【发布时间】:2013-08-20 12:21:33
【问题描述】:

是否有正确的方法来循环一个 for 循环并创建多个对象,但不知道它循环了多少次?根据我的研究,我可以遍历预先确定的字符串列表并从中创建对象,但是如果我没有预先确定的数字要遍历怎么办。

class Item(object):
    def __init__(self, x, y, z):
        self.x
        self.y
        self.z

for x in range(random_number):
    x = Item(1,2,3)

我将如何处理这个问题,并知道创建的第一个和最后一个对象之间的区别?

【问题讨论】:

    标签: python class loops object


    【解决方案1】:

    您可以将对象存储在列表中。然后您可以使用索引引用第一个和最后一个项目。

    items = [Item(1,2,3) for x in range(random_number)]
    first = items[0]
    last = items[-1]
    

    【讨论】:

    • first, *rest, last = items -- 如果在 Python 3 IMO 上解包比基于索引的获取更好。
    【解决方案2】:

    你打算如何处理这些对象?如果您只想使用 for 循环创建随机数量,请执行您正在执行的操作。但是,在我看来,您想将它们放在 list 中:

    mylist = []
    for i in range(random_number):
        mylist.append(Item(1,2,3))
    

    或者,您可以使用list comprehension

    mylist = [Item(1,2,3) for i in range(random_number)]
    

    【讨论】:

    • 我在游戏中使用对象,其中对象代表人。满足某个条件后,游戏中会实现更多此类对象,因此可能会创建 100 多个对象。
    【解决方案3】:

    您可以使用数组来跟踪创建的对象

    object_list = []
    for x in range(random_number):
        object_list.append(Item(1, 2, 3))
    

    创建的第一个对象是object_list[0],最后一个是object_list[-1]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      相关资源
      最近更新 更多