我正在尝试使用以下代码在两个列表之间组合元素。
输入以下内容:
nested_array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
我希望得到以下输出:
[[1, 4, 5, 6], [2, 4, 5, 6], [3, 4, 5, 6], [1, 7, 8, 9], ... [6, 7, 8, 9]]
我尝试使用以下内容,但似乎并没有以我想要的格式输出。
可以帮忙吗?
def unique_combination(nested_array):
try:
for n1, array in enumerate(nested_array):
for element in array:
a = [element], list(nested_array[n1+1])
print(a)
except IndexError:
pass
此外,我尝试不使用print(),而是尝试使用操作return。 但是使用操作return时,它仅返回一个输出。 我编码正确吗?
答案 0 :(得分:0)
在不知道所需的完整输出的情况下,它看起来像是您想要的东西。请注意,可以使用列表理解功能将其写成一行,但这很讨厌。
nested_array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for list_index in range(len(nested_array) - 1):
for marcher_index in range(list_index + 1, len(nested_array)):
for ele in nested_array[list_index]:
print([ele] + nested_array[marcher_index])
输出:
[1, 4, 5, 6]
[2, 4, 5, 6]
[3, 4, 5, 6]
[1, 7, 8, 9]
[2, 7, 8, 9]
[3, 7, 8, 9]
[4, 7, 8, 9]
[5, 7, 8, 9]
[6, 7, 8, 9]
答案 1 :(得分:0)
尝试一下:
flatten_list = lambda ls: [item for sublist in ls for item in sublist]
nested_array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
unique_combination = [[i]+nested_array[j] for j in range(1,len(nested_array))
for i in flatten_list(nested_array[:j])]
print(unique_combination)
输出
[[1, 4, 5, 6],
[2, 4, 5, 6],
[3, 4, 5, 6],
[1, 7, 8, 9],
[2, 7, 8, 9],
[3, 7, 8, 9],
[4, 7, 8, 9],
[5, 7, 8, 9],
[6, 7, 8, 9]]