gpt4 book ai didi

python - 交换列表中的最大值和最小值

转载 作者:太空狗 更新时间:2023-10-29 22:22:19 25 4
gpt4 key购买 nike

给定一个列表(例如,[1,1,2,1,2,2,3]),它没有从高到低排序,并且包含所有数字的倍数,我需要交换,最大值与最小值,第二个最大值与第二个最小值等。因此,我们的示例列表将变为 [3,3,2,3,2,2,1]。

另外,澄清一下,这不仅仅是最大值和最小值,而是每一层的最大值和最小值。因此,如果最大值为 4,则 1 和 4 以及 2 和 3 应该切换。

我发现了这个关于主题的问题:How to swap maximums with the minimums? (python)

但是给出的代码示例似乎很冗长,并且假设列表中没有重复项。真的没有更好的方法吗?这看起来很简单。

最佳答案

这是一种可行的方法,因为 Python 是一种富有表现力的语言:

>>> a = [1,1,2,1,2,2,3]
>>> d = dict(zip(sorted(set(a)), sorted(set(a), reverse=True)))
>>> [d[x] for x in a]
[3, 3, 2, 3, 2, 2, 1]

关于python - 交换列表中的最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26209142/

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