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)
我必须用列表初始化 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)