在将列表转换为列表列表时,我需要帮助,以使列表的最后一个数字分成两个(非负整数)部分,总和为最后一个数字。
例如:
输入:[6,3,11,4]
然后
输出:[[6,3,11,4,0],[6,3,11,3,1],[6,3,11,2,2],[6,3,11,1 ,3],[6,3,11,0,4]]
CreateTemplate(templateName: string): Observable<any> {
return this.httpClient.post<any>(Url + "Templates/CreateTemplate?templateName=" + templateName, "");
}
我需要创建哪个函数?
注意:最后一个数字是4,并分为4,0;
3,1; 2,2; 1,3; 0,4
答案 0 :(得分:1)
不完全使用funct语法,但是您可以尝试类似-
[list1[0:-1]+[list1[-1]-i,i] for i in range(list1[-1]+1)]
输出为-
[[6, 3, 11, 4, 0],
[6, 3, 11, 3, 1],
[6, 3, 11, 2, 2],
[6, 3, 11, 1, 3],
[6, 3, 11, 0, 4]]
答案 1 :(得分:1)
尝试一下:
list1 = [6,3,11,4]
b = [list1[:-1] + [list1[-1]-i,i] for i in range(list1[-1]+1)]
# [[6, 3, 11, 4, 0], [6, 3, 11, 3, 1], [6, 3, 11, 2, 2], [6, 3, 11, 1, 3], [6, 3, 11, 0, 4]]
答案 2 :(得分:1)
list1= [6,3,11,4]
def create_my_list(inp_list):
output_list = []
last_digit = inp_list[-1]
for combination in range(last_digit+1):
output_list.append(inp_list[:-1].extend([combination, last_digit-combination])
return output_list
您可以像其他答案一样将其连接成一个单行,但这更容易理解