我坚持一个问题,我想不出任何有效的方法来做到这一点.问题如下:
我有2个列表,每个列表n最多10^3.
v = [v_1, v_2, ..., v_n]
w = [w_1, w_2, ..., w_n]
Run Code Online (Sandbox Code Playgroud)
在以下示例中n = 3.
v = [60, 100 , 120]
w = [20, 50, 30]
Run Code Online (Sandbox Code Playgroud)
我需要根据以下等式的递减顺序对两个列表进行排序: v_i/w_i
所以在这种情况下我会得到:
v_1/w_1 = 3
v_2/w_2 = 2
v_3/w_3 = 4
Run Code Online (Sandbox Code Playgroud)
之后,我需要按降序排序两个列表(相互依赖),我会得到以下结果.
v_new = [120, 60, 100]
w_new = [30, 20, 50]
Run Code Online (Sandbox Code Playgroud)
我知道有一种排序方式(zip(X,Y),但这样做会改变我的列表中的元组,我需要它作为列表.任何建议?
我有一个这样的嵌套列表:
list = [[1,2,3], [2,5,7,6], [1,-1], [5,7], [6,3,7,4,3], [2, 5, 1, -5]]
Run Code Online (Sandbox Code Playgroud)
我想做的是删除嵌套列表,这些列表中的值既是正数也是负数。我已经尝试通过列表理解来做到这一点,但是我无法弄清楚。
def method(list):
return [obj for obj in list if (x for x in obj if -x not in obj)]
Run Code Online (Sandbox Code Playgroud)
获得的结果应类似于:
list = [[1,2,3], [2,5,7,6], [5,7], [6,3,7,4,3]]
Run Code Online (Sandbox Code Playgroud)