挑战:
给定一个非空的整数列表,返回一个具有以下形式的元组列表:第一个列表元组以第一个列表的每个元素开头,然后是每个后续列表的第一个元素,因此第一个元组应该为[ith element of first list, first element of second list, ... , first element of last list]
。例如:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => [[1, 4, 7], [2, 4, 7], [3, 4, 7], ...
然后执行形式的元组[last element of first list, ith element of second list, first element of third list, ..., first element of last list]
,因此在我们的示例中将是:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => ..., [3, 4, 7], [3, 5, 7], [3, 6, 7], ...
继续处理每个剩余的列表,直到到达[last element of first list, ..., last element of second to last list, ith element of last list]
:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => ..., [3, 6, 7], [3, 6, 8], [3, 6, 9]]
完整的输出如下:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] =>
[[1, 4, 7], [2, 4, 7], [3, 4, 7], [3, 5, 7], [3, 6, 7], [3, 6, 8], [3, 6, 9]]
一些样板好措施:
- 如果您希望输入是字符串列表或正整数列表,则可以。问题是关于操作列表,而不是列表中的内容。
- 输入和输出可以采用任何可接受的格式。
- 允许使用完整的程序或功能。
- 默认情况下不允许出现标准漏洞。
- 这个问题是代码高尔夫,因此最低字节数取胜。
例子:
[] => [[]] (or an error, thanks to ngn for correcting the output in this case)
[[1]] => [[1]]
[[1, 2], [3, 4], [5]] => [[1, 3, 5], [2, 3, 5], [2, 4, 5]]
[[1], [2], [5, 6], [3], [4]] => [[1, 2, 5, 3, 4], [1, 2, 6, 3, 4]]
[[1, 2, 3], [4, 5]] => [[1, 4], [2, 4], [3, 4], [3, 5]]
[[1, 2, 3], []] => unspecified behavior (can be an error)
[[3, 13, 6], [9, 2, 4], [5, 10, 8], [12, 1, 11], [7, 14]] =>
[[3, 9, 5, 12, 7], [13, 9, 5, 12, 7], [6, 9, 5, 12, 7], [6, 2, 5, 12, 7],
[6, 4, 5, 12, 7], [6, 4, 10, 12, 7], [6, 4, 8, 12, 7], [6, 4, 8, 1, 7],
[6, 4, 8, 11, 7], [6, 4, 8, 11, 14]]
[[16, 8, 4, 14, 6, 7, 10, 15], [11, 1, 12, 2, 19, 18, 9, 3], [13, 5, 17]] =>
[[16, 11, 13], [8, 11, 13], [4, 11, 13], [14, 11, 13], [6, 11, 13],
[7, 11, 13], [10, 11, 13], [15, 11, 13], [15, 1, 13], [15, 12, 13], [15, 2, 13],
[15, 19, 13], [15, 18, 13], [15, 9, 13], [15, 3, 13], [15, 3, 5], [15, 3, 17]]
如果有人的头衔更好,请告诉我。
[[]]
因为只有一个空元组,每个(零)子列表中都有一个条目。要求程序正确输出此结果可能太烦人了,所以我会说这是不必要的。
[]
的,严格来说,非空列表的空单,但输出之间暧昧[]
而[[]]
如果它是允许的输入。(“第一个列表元组从第一个列表的每个元素开始...”-没有第一个列表,所以我们完成了-> []
)
[]
应该是[[]]
。例如,sum(inner list lengths) - length of outer list + 1
在空情况下给出的输出元组数1
是的长度,[[]]
而不是的长度[]
。不过,这是个书呆子问题...
[] => []
应是的感觉,[] => [[]]
但找不到能解释原因的词。