Python 用列表初始化 class

Python initialize class with list

我必须用列表初始化 class,这将 return 给定列表中的每个子列表。

我在将空列表定义为参数时遇到问题:

class list():
def sublists(self, lst=[]):
    sub = [[]]
    for i in range(len(lst)+1):
        for j in range (i+1, len(lst)):
            sub = lst[i:j]
            sub.append(sub)
    return sub

正如其他人所指出的,从问题中你的意图不是很清楚。我的理解是,您想获取给定列表的所有连续子列表。

这实现了。

class MyList:
    def sublists(self, lst=[]):
        subs = [[]]
        for i in range(len(lst)):
            for j in range (i+1, len(lst)+1):
                sub = lst[i:j]
                subs.append(sub)
        return subs

x = [i for i in range(3)]
my_list = MyList()
print(my_list.sublists(x))

如果您打算做其他事情,请更新您的问题。

如果我错了请纠正我,但我想任务很简单。您可以使用列表初始化 class 实例:

class list():
    sub = []
    def __init__(self, lst=[]):
        self.sub = lst

a = [
[1,2,3],
[4,5,6],
[7,8,9],
]

myClass = list(a)

print(myClass.sub)