gpt4 book ai didi

python - 更改排序在 Python 中的工作方式(不同于字母数字)

转载 作者:行者123 更新时间:2023-11-28 22:49:20 25 4
gpt4 key购买 nike

我将扑克中的牌表示为字母(小写和大写)以便有效地存储它们。我现在基本上需要一个自定义排序函数来允许使用它们进行计算。

使用 Python 对字母进行排序最快的方法是什么

['a', 'n', 'A', 'N', 'b', 'o', ....., 'Z']

作为行列而不是

['A', 'B', 'C', 'D', 'E', 'F', ....., 'z']

哪个是默认值?


请注意,此排序源自:

import string        
c = string.letters[:13]
d = string.letters[13:26]
h = string.letters[26:39]
s = string.letters[39:]

'a' = 2 of clubs
'n' = 2 of diamonds
'A' = 2 of hearts
'N' = 2 of spades
etc

最佳答案

您可以提供 key function对于 sorted,将为 iterable 中的每个元素调用此函数,返回值将用于排序而不是元素值。

在这种情况下,它可能类似于以下内容:

order = ['a', 'n', 'A', 'N', 'b', 'o', ....., 'Z']

sorted_list = sorted(some_list, key=order.index)

这里有一个简单的例子来说明这一点:

>>> order = ['a', 'n', 'A', 'N']
>>> sorted(['A', 'n', 'N', 'a'], key=order.index)
['a', 'n', 'A', 'N']

请注意,为了提高效率,您可能希望对 key 函数使用字典查找而不是 order.index,例如:

order = ['a', 'n', 'A', 'N', 'b', 'o', ....., 'Z']
order_dict = {x: i for i, x in enumerate(order)}

sorted_list = sorted(some_list, key=order_dict.get)

关于python - 更改排序在 Python 中的工作方式(不同于字母数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23940218/

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