【问题标题】:Declare a list of user defined class in python在 python 中声明用户定义类的列表
【发布时间】:2013-04-20 21:36:03
【问题描述】:

我有:

class Cluster:
    # some attributes

c = Cluster()

其中c 应该是Cluster() 类型的列表

我可以定义类似 c= Cluster[] 的东西吗?

我是python的初学者。

【问题讨论】:

    标签: python list class cluster-computing


    【解决方案1】:

    澄清一下:不存在Cluster 类型的列表”。有一个list 类型的列表,它可以包含任何内容。

    所以你需要创建一堆Clusters 并将它们添加到常规列表中:

    例如使用列表理解:

    N = 10 # length
    clusters = [Cluster() for _ in range(N)]
    

    或使用常规循环:

    clusters = []
    for _ in range(N): clusters.append(Cluster())
    

    在任何情况下,您都可以稍后修改您的列表,因为它只是一个常规列表。

    【讨论】:

      【解决方案2】:

      在 Python 中,您不必(也不能)告诉您的列表将包含什么。所以只做空列表

      c=[]
      

      然后打电话

      c.append(thing)
      

      对于你想要的东西:thing 可以是 int、Cluster、float 等类型。最后,你可以拥有

      c=[Cluster(...),1,"2",["a",1.2],(2,3),{1,2,3}]
      

      (其中 {1,2,3} 是一个集合,而 (2,3) 是一个元组)。

      【讨论】:

        【解决方案3】:
        c = [Cluster(arguments), Cluster(arguments2), ... ]
        

        等同于:

        a = [1 , 2, "a" , 4, Cluster(arguments3)]
        

        【讨论】:

        • 一开始我不知道我的集群的大小,可以初始化它以便以后追加吗?
        【解决方案4】:

        只需写c = [],然后将Cluster 对象添加到您的list c,如下所示:

        c = []
        obj = Cluster()
        c += [obj]
        

        【讨论】:

          猜你喜欢
          • 2019-03-24
          • 2020-07-27
          • 1970-01-01
          • 1970-01-01
          • 2014-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-11
          相关资源
          最近更新 更多