Python 使用整数修改列表

Python 使用整数修改列表,python,Python,我试图弄清楚以下几点: 我将列表列表和整数N作为输入,目标是通过在每个元素前面按递增顺序添加N范围内的数字,将子列表的元素重复N次。 例如,作为输入,我们将收到: >>> conversion([['GREEN', 'PURPLE'], ['RED']], 3) [['GREEN0', 'GREEN1', 'GREEN2', 'PURPLE0', 'PURPLE1', 'PURPLE2'], ['RED0', 'RED1', 'RED2']] 我的想法是创建一个空列表,然后在

我试图弄清楚以下几点: 我将列表列表和整数N作为输入,目标是通过在每个元素前面按递增顺序添加N范围内的数字,将子列表的元素重复N次。 例如,作为输入,我们将收到:

>>> conversion([['GREEN', 'PURPLE'], ['RED']], 3)
[['GREEN0', 'GREEN1', 'GREEN2', 'PURPLE0', 'PURPLE1', 'PURPLE2'], ['RED0', 'RED1', 'RED2']]
我的想法是创建一个空列表,然后在这个空列表中添加每个子列表的每个元素。然后,我将用相同的版本替换元素,并在其末尾添加range(N),但在编写代码时,我要么无法在新列表中分离子列表的元素,要么无法添加或分离元素的不同副本以及range(N)中的值
我希望我的解释清楚,并感谢您的帮助。

您关于新列表的想法是正确的。这里有一个可能的解决方案

def conversion(l, n):
   new_list = []
   for inner_list in l:
      new_list.append([])
      for word in inner_list:
         for i in range(n):
            new_list[-1].append(word + str(i))
   return new_list

单班轮替代方案。(只是为了好玩):


将这两个任务分成更小的函数可能会很有用,以便更容易理解。使用
listrepeater()
获得所需的列表结果,然后在
nestedListRepeater()


非常感谢,我不知道如何合并最后一个for循环谢谢你的帮助
def conversion(l, n):
   return [[word + str(i) for word in inner_list for i in range(n)] for inner_list in l ]
def conversion(input_list, count):

    output_list = [
        [
            input_list[k][j] + str(i)
            for j in range(len(input_list[k]))
            for i in range(count)
        ]
        for k in range(len(input_list))
    ]
    return output_list
def listrepeater(l,multiplier):
    output = []
    for val in l:
       for i in range(multiplier):
          output.append(val + str(i))
          i+=1
    return output


def nestedListRepeater(inputlist,multiplier):
    outputlist = []
    for sublist in inputlist:
        outputlist.append(listrepeater(sublist,multiplier))    

    return outputlist

nestedListRepeater([['GREEN', 'PURPLE'], ['RED']],3)