Sorting list based on values from another list?

后端 未结 15 2313
温柔的废话
温柔的废话 2020-11-21 07:14

I have a list of strings like this:

X = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\"]
Y = [ 0,   1,   1,   0,   1,   2,   2,   0,   1 ]
         


        
15条回答
  •  你的背包
    2020-11-21 08:14

    The most obvious solution to me is to use the key keyword arg.

    >>> X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
    >>> Y = [ 0,   1,   1,    0,   1,   2,   2,   0,   1]
    >>> keydict = dict(zip(X, Y))
    >>> X.sort(key=keydict.get)
    >>> X
    ['a', 'd', 'h', 'b', 'c', 'e', 'i', 'f', 'g']
    

    Note that you can shorten this to a one-liner if you care to:

    >>> X.sort(key=dict(zip(X, Y)).get)
    

提交回复
热议问题