python - 对扑克牌列表进行排序 [python]

标签 python list playing-cards

我有一个列表列表,每个列表中有 3 张扑克牌,如下所示 -

[['As', 'Qs', '7s'], ['Ad', 'Ks', '7s'], ['Ac', '9d', '8s']]

我希望我的结果看起来像 -

[['Ad', 'Ks', '7s'], ['As', 'Qs', '7s'], ['Ac', '9d', '8s']]

注意:顺序是根据牌的等级决定的。 AKQJT9...

我正在考虑使用这样的比较键

values=dict(zip('23456789TJQKA',range(2,15)))

然后通过遍历原始列表并在适当的点插入包含 3 张卡片的新列表来创建一个新列表。

有更好的方法吗?谢谢。

最佳答案

此代码应根据您的需要对卡片进行排序。

a= [['As', 'Qs', '7s'], ['Ad', 'Ks', '7s'], ['Ac', '9d', '8s']]
values=dict(zip('23456789TJQKA','abcdefghijklm'))
b=[[values[x[0]] for x in y] for y in a] 
# b = [['m', 'k', 'f'], ['m', 'l', 'f'], ['m', 'h', 'g']]
c=[''.join(x) for x in b] 
# c = ['mkf', 'mlf', 'mhg']
[x for _, x in sorted(zip(c, a), reverse=True)]
# x = [['Ad', 'Ks', '7s'], ['As', 'Qs', '7s'], ['Ac', '9d', '8s']]

关于python - 对扑克牌列表进行排序 [python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70580923/

相关文章:

php - 在目录中查找文件

javascript - 使用 JavaScript 编程 Aces

python - 如何修复 "Failed building wheel for pyscipopt"?

python - 如何在 python 中创建 IPortableDeviceManager 的实例?

Python - JIRA - 修改标签

list - 如何在 Apex Salesforce 中获取列表的子列表?

java - list.toArray(T[] a),如果 "T"是 "runtime type"怎么办?

c++ - 读取文件并根据该信息制作对象 vector

python从特定行位置的数据帧收集数据