在其他列表范围内创建的列表

时间:2019-01-25 13:52:25

标签: python

我有一个如下列表:

[3,2,4,5]

我想要一个如下列表:

[['1','2','3'],['1','2'],['1','2','3','4'],['1','2','3','4','5']]

我的意思是我想拥有一个由另一个列表的计数创建的列表。 我想用字符串进行迭代。

我怎么用python编写

我尝试了以下代码:

    for i,val in enumerate(list_mf_input):
        self.eachMembership.append([])
        for value in range(1, val+1):
            self.eachMembership.append([value])

2 个答案:

答案 0 :(得分:3)

您可以将rangelist一起使用,并列出理解:

>>> a = [3, 2, 4, 5]
>>> [list(range(1, x+1)) for x in a]
[[1, 2, 3], [1, 2], [1, 2, 3, 4], [1, 2, 3, 4, 5]

要制作所有字符串,请在map上加上str

>>>[list(map(str, range(1, x+1))) for x in a]
[['1', '2', '3'], ['1', '2'], ['1', '2', '3', '4'], ['1', '2', '3', '4', '5']]

答案 1 :(得分:1)

尝试此代码。我试图尽可能地简化

lol=[3,2,4,5]
ans=[]
temp=[]
for i in lol:
    for j in range(1,i+1):
        temp.append(j)
    ans.append(temp)
    temp=[]
print(ans) 

希望有帮助