X=[5,6,2,3,1]Y=[7,4,6]
我排序X:
X=[1,5,6]
但是我希望将相同的相对排序应用于Y,因此数字保持在相同的位置,如前所述:
Y=[6,7,2]
我希望这是有道理的!
解决方法 通常,您为此执行zip-sort-unzip>>> X = [5,1]>>> Y = [7,6]
现在将它们排序:
>>> sorted(zip(X,Y))[(1,6),(2,3),(3,4),(5,7),(6,2)]
用“解压缩”(zip(* …))配对
>>> zip(*sorted(zip(X,Y)))[(1,2)]
你可以解压缩:
>>> X,Y = zip(*sorted(zip(X,Y)))>>> X(1,6)>>> Y(6,2)
现在你有了元组而不是列表对象,但如果你真的需要,你可以将其转换回来.
正如评论中指出的那样,这确实引入了对排序中第二个列表的轻微依赖:考虑列表:
X = [1,1,7] #sorted alreadyY = [2,6] #Not already sorted.
通过上面的“食谱”,在一天结束时,您将得到:
X = (1,7)Y = (1,6)
这可能是出乎意料的.要解决这个问题,您可以将键参数传递给sorted:
from operator import itemgetterX,Y),key=itemgetter(0)))
演示:
>>> X[1,7]>>> Y[2,6]>>> XX,YY = zip(*sorted(zip(X,Y)))>>> XX(1,7)>>> YY(1,6)>>> from operator import itemgetter>>> XX,key=itemgetter(0)))>>> XX(1,7)>>> YY(2,6)总结
以上是内存溢出为你收集整理的Python:如何对数组X进行排序,但对Y进行相同的相对排序?全部内容,希望文章能够帮你解决Python:如何对数组X进行排序,但对Y进行相同的相对排序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)