我在面试时遇到了一个问题,这很有挑战性.该主题基于决策分析.问题是让我们假设我们有一个元组;
(15, 8, 8, 3)
Run Code Online (Sandbox Code Playgroud)
并且我们希望逐个创建所有组合的所有总和,而不重复和求和相同的数字,例如此输出;
[(23, 8, 3), (18, 8, 8), (15, 11, 8)]
Run Code Online (Sandbox Code Playgroud)
另一个例子;
(6, 5, 3, 8)
Run Code Online (Sandbox Code Playgroud)
输出是:
[(11, 3, 8), (9, 5, 8), (14, 5, 3), (6, 8, 8), (6, 13, 3), (6, 5, 11)]
Run Code Online (Sandbox Code Playgroud)
注意:订单很灵活.
我真的很想知道答案,所以如果有人对这个编码挑战感兴趣,会帮助我改善思维结构.
你如何将这两个列表理解缩短为一行?我想编码为一行.我的方式似乎太长了.我觉得还有另一种方法来编码它.
y = [array[i][0] for i in range(len(array))]
x = [i for i in range(len(array))]
x, y = [i for i in range(len(array))], [array[i][0] for i in range(len(array))]
Run Code Online (Sandbox Code Playgroud)