相关疑难解决方法(0)

根据另一个列表中的值排序列表?

我有一个像这样的字符串列表:

X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0,   1,   1,    0,   1,   2,   2,   0,   1]
Run Code Online (Sandbox Code Playgroud)

使用Y中的值对X进行排序以获得以下输出的最短方法是什么?

["a", "d", "h", "b", "c", "e", "i", "f", "g"]
Run Code Online (Sandbox Code Playgroud)

具有相同"密钥"的元素的顺序无关紧要.我可以使用for构造,但我很好奇是否有更短的方法.有什么建议?

python sorting

317
推荐指数
10
解决办法
24万
查看次数

Python - 使用另一个列表对元组列表进行排序

我有一个元组列表to_order,如:

to_order = [(0, 1), (1, 3), (2, 2), (3,2)]
Run Code Online (Sandbox Code Playgroud)

以及一个列表,它给出了应用于每个元组的第二个元素的顺序to_order:

order = [2, 1, 3]
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找一种获得此输出的方法:

ordered_list = [(2, 2), (3,2), (0, 1), (1, 3)]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python sorting tuples list

13
推荐指数
2
解决办法
1687
查看次数

Python根据给定的顺序对列表进行排序

说,我有一个清单A = [[3,5],[1,3],[6,1]].

我说还有另一份清单 B = [6,1,3]

我想对列表A进行排序,以便A变为[[6,1],[1,3],[3,5]],适合给定的BIe,每个A子列表的第一个成员应该根据B进行排序.

python sorting list

11
推荐指数
2
解决办法
4744
查看次数

根据另一个列表对元组列表进行排序

我有一个元组列表,例如。

l1 = [(1, 'a', 'x'), (2, 'b', 'y'), (3, 'a', 'z'), (4, 'c', 'xyz')]
Run Code Online (Sandbox Code Playgroud)

我还有另一个清单

l2 = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

我想l1根据 中存在的顺序对每个元组的第二个值进行排序l2。最终结果应该是

l1 = [(1, 'a', 'x'), (3, 'a', 'z'), (2, 'b', 'y'), (4, 'c', 'xyz')]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,第二个值为 的元组a首先出现,然后是具有第二个值的元组b,最后是具有 的元组c

我写了以下内容:

l = []
for i in l2:
    for j in l1:
        if i == j(1):
        l.append(j)
Run Code Online (Sandbox Code Playgroud)

这非常简单。但我想知道是否有任何 pythonic 方法来完成这件事?

python

2
推荐指数
1
解决办法
1015
查看次数

标签 统计

python ×4

sorting ×3

list ×2

tuples ×1