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