我目前有一个函数,使用3个嵌套的for循环创建一个列表,如下所示。
[[1,1,1] , [1,1,2] , .... , [3,3,3]]
然而,问题是我不能使用此功能,如果有人想要列表列表是
[[1,1,1,1,1,1,1] , ..... , [9,9,9,9,9,9,9]]
其中包含更多数字(从1到9)和更多元素(1个中的7个而不是4个)。
这是我目前的代码:
def listofList():
temp = []
for i in range(1,4):
for j in range(1,4):
for k in range(1,4):
temp.append([i,j,k])
return temp
有人可以为我提供更好的解决方案吗?我希望我的函数listofList()
具有灵活性,它可以接收列表列表大小和列表中元素的输入。
答案 0 :(得分:2)
尝试以下方法:
def listofList(subLen, totalLen):
final = [[item for i in range(subLen)] for item in range(1, totalLen+1)]
return final
>>> listofList(9, 9)
[[1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5, 5, 5, 5], [6, 6, 6, 6, 6, 6, 6, 6, 6], [7, 7, 7, 7, 7, 7, 7, 7, 7], [8, 8, 8, 8, 8, 8, 8, 8, 8], [9, 9, 9, 9, 9, 9, 9, 9, 9]]
>>> listofList(9, 2)
[[1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2, 2]]
>>> listofList(2, 9)
[[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9]]
>>>