Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中从2D数组的每个子数组中选择一个元素?_Python_Arrays_Python 3.x_List_Combinations - Fatal编程技术网

如何在python中从2D数组的每个子数组中选择一个元素?

如何在python中从2D数组的每个子数组中选择一个元素?,python,arrays,python-3.x,list,combinations,Python,Arrays,Python 3.x,List,Combinations,因此,python中只提供了一个变量: array=[[1,2,3]、[4,5,6]、[7,8,9]、[10,11]。 您希望能够从该数组的每个元素中返回仅包含1个元素的数组列表 因此,在这种情况下,我们的答案是: [1、4、8、10、[1、4、4、4、8、10、[1、4、8、8、10、[1、4、4、8、8、8、11、11、[1、4、4、9、9、10、[1、4、4、4、4、4、9、9、9、10、[1、4、4、4、8、8、8、8、8、8、8、8、11、11、11、[1、4、4、4、8、8、8、8、

因此,python中只提供了一个变量:

array=[[1,2,3]、[4,5,6]、[7,8,9]、[10,11]。

您希望能够从该
数组的每个元素中返回仅包含1个元素的数组列表

因此,在这种情况下,我们的答案是:

[1、4、8、10、[1、4、4、4、8、10、[1、4、8、8、10、[1、4、4、8、8、8、11、11、[1、4、4、9、9、10、[1、4、4、4、4、4、9、9、9、10、[1、4、4、4、8、8、8、8、8、8、8、8、11、11、11、[1、4、4、4、8、8、8、8、8、8、11、8、11、11、11、11、11、11、11、11、11、11、11、[1、1、4、4、1、4、4、4、4、4、4、4、4、9、9、9、9、9、9、9、9、9、9、9、10、10、9、10、10、10、10、10、10、10、10、10、10、10、10、[2,4,8,11],,[2, 4, 9, 10], [2, 4, 9, 11], [2, 5, 7, 10], [2, 5, 7, 11], [2, 5, 8, 10], [2, 5, 8, 11], [2, 5, 9, 10], [2, 5, 9, 11], [2, 6, 7, 10], [2, 6, 7, 11], [2, 6, 8, 10], [2, 6, 8, 11], [2, 6, 9, 10], [2, 6, 9, 11], [3, 4, 7, 10], [3, 4, 7, 11], [3, 4, 8, 10], [3, 4, 8, 11], [3, 4, 9, 10], [3, 4, 9, 11], [3, 5, 7, 10], [3, 5, 7, 11], [3, 5, 8, 10], [3,5,8,11],[3,5,9,10],[3,5,9,11],[3,6,7,10],[3,6,7,11],[3,6,8,10],[3,6,8,11],[3,6,9,10],[3,6,9,11]

我想强调的是,您不知道子数组的数量,您得到的唯一输入是变量
array

我曾想过编写一个递归调用自身的函数,从任意数量的数组中提取元素,但我找不到它的逻辑

如何解决这个问题

我想知道这个问题的答案,因为这是一个更大问题的一部分,在这个问题中,您需要从变量
数组
的每个数组中准确地选择1元素,这样所选元素的最大值最小值之间的差异就是整体最小值

array=[[1,2,3],[4,5,6],[7,8,9],[10,11]
的情况下,答案将是7,我们可以通过选择(3,5,8,10)来获得

有没有其他方法来解决这个问题,而不必生成所有元素的所有排列?

您可以试试这个

来自itertools导入产品的

数组=[[1,2,3],[4,5,6],[7,8,9],[10,11]]
结果=列表(产品(*数组))
打印(结果)
>>> [(1, 4, 7, 10), (1, 4, 7, 11), (1, 4, 8, 10), (1, 4, 8, 11), (1, 4, 9, 10), 
(1, 4, 9, 11), (1, 5, 7, 10), (1, 5, 7, 11), (1, 5, 8, 10), (1, 5, 8, 11), 
(1, 5, 9, 10), (1, 5, 9, 11), (1, 6, 7, 10), (1, 6, 7, 11), (1, 6, 8, 10), 
(1, 6, 8, 11), (1, 6, 9, 10), (1, 6, 9, 11), (2, 4, 7, 10), (2, 4, 7, 11), 
(2, 4, 8, 10), (2, 4, 8, 11), (2, 4, 9, 10), (2, 4, 9, 11), (2, 5, 7, 10), 
(2, 5, 7, 11), (2, 5, 8, 10), (2, 5, 8, 11), (2, 5, 9, 10), (2, 5, 9, 11), 
(2, 6, 7, 10), (2, 6, 7, 11), (2, 6, 8, 10), (2, 6, 8, 11), (2, 6, 9, 10), 
(2, 6, 9, 11), (3, 4, 7, 10), (3, 4, 7, 11), (3, 4, 8, 10), (3, 4, 8, 11), 
(3, 4, 9, 10), (3, 4, 9, 11), (3, 5, 7, 10), (3, 5, 7, 11), (3, 5, 8, 10), 
(3, 5, 8, 11), (3, 5, 9, 10), (3, 5, 9, 11), (3, 6, 7, 10), (3, 6, 7, 11), 
(3, 6, 8, 10), (3, 6, 8, 11), (3, 6, 9, 10), (3, 6, 9, 11)]
您可以试试这个

来自itertools导入产品的

数组=[[1,2,3],[4,5,6],[7,8,9],[10,11]]
结果=列表(产品(*数组))
打印(结果)
>>> [(1, 4, 7, 10), (1, 4, 7, 11), (1, 4, 8, 10), (1, 4, 8, 11), (1, 4, 9, 10), 
(1, 4, 9, 11), (1, 5, 7, 10), (1, 5, 7, 11), (1, 5, 8, 10), (1, 5, 8, 11), 
(1, 5, 9, 10), (1, 5, 9, 11), (1, 6, 7, 10), (1, 6, 7, 11), (1, 6, 8, 10), 
(1, 6, 8, 11), (1, 6, 9, 10), (1, 6, 9, 11), (2, 4, 7, 10), (2, 4, 7, 11), 
(2, 4, 8, 10), (2, 4, 8, 11), (2, 4, 9, 10), (2, 4, 9, 11), (2, 5, 7, 10), 
(2, 5, 7, 11), (2, 5, 8, 10), (2, 5, 8, 11), (2, 5, 9, 10), (2, 5, 9, 11), 
(2, 6, 7, 10), (2, 6, 7, 11), (2, 6, 8, 10), (2, 6, 8, 11), (2, 6, 9, 10), 
(2, 6, 9, 11), (3, 4, 7, 10), (3, 4, 7, 11), (3, 4, 8, 10), (3, 4, 8, 11), 
(3, 4, 9, 10), (3, 4, 9, 11), (3, 5, 7, 10), (3, 5, 7, 11), (3, 5, 8, 10), 
(3, 5, 8, 11), (3, 5, 9, 10), (3, 5, 9, 11), (3, 6, 7, 10), (3, 6, 7, 11), 
(3, 6, 8, 10), (3, 6, 8, 11), (3, 6, 9, 10), (3, 6, 9, 11)]

添加你的递归函数。@shaikmoeed,我没有递归函数的逻辑。我希望能对它有所了解。添加你的递归函数。@shaikmoeed,我没有递归函数的逻辑。我希望能对它有所了解。