gpt4 book ai didi

python - 按 a, -c, b 对字符串矩阵 [[a, b, c], ...] 进行排序,保持顺序?

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:15 26 4
gpt4 key购买 nike

我在 Python 中有一个包含三个字符串的列表,例如,

m = [['pig', 'quartz', '1'], ['pork', 'nails', '1'], ...]

我想按索引 0 对其进行排序,然后以相反的顺序按索引 2 进行排序,然后按索引 1 进行排序。在排序的每一步中,我都希望保持其他列强加的顺序。例如,

pork       barn         4
pork barn2 4
pork nails 1
pig quartz 1
quinoa pail 1
quinoa quatern 1
quail quatern 1
radish barn 1
radish barn2 1
radish inbox 3
radish snow 1

会变成:

pig        quartz       1
pork barn 4
pork barn2 4
pork nails 1
quail quatern 1
quinoa pail 1
quinoa quatern 1
radish inbox 3 <-
radish barn 1
radish barn2 1
radish snow 1

也就是说,按第一列排序,然后在第一列的每一组内排序( pig 、 pig 肉、鹌鹑,...),按第三列反向排序,然后在第一列-第三列的每一组内排序((pig, 1), (pork, 4), (pork, 1), ...),按第二列排序。

我怎样才能很好地做到这一点?从概念上讲,如果 operator.itemgetter() 可以对排序顺序和索引进行编码,我会想要像 m.sort(key=operator.itemgetter(0, -2, 1)).

最佳答案

def key(item):
return item[0], -int(item[2]), item[1]
m.sort(key = key)

附言。 cmp 关键字参数为 removed from Python3 .为了将来的兼容性,您可能希望坚持使用 key

关于python - 按 a, -c, b 对字符串矩阵 [[a, b, c], ...] 进行排序,保持顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9689432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com