我有一份清单:
>>> a = [['3D'], ['3D', '4D', '5D'], ['4C'], ['2C'],['4C', '4D'], ['4D'], ['5D'], \
... ['JC'], ['JC', 'JS'], ['JS']]
您可能会注意到这是卡值,即C=梅花等。J=杰克等。我还有一个参考列表:
^{pr2}$因为我在玩一个最大值是2的纸牌游戏。要按列表长度排序,我需要:
>>> a = sorted(a, key = lambda x: len(x))
>>> a
... [['3D'], ['4C'], ['4D'], ['2C'], ['5D'], ['JC'], ['JS'], ['4C', '4D'], ['JC', 'JS'], ['3D', '4D', '5D']]
我还需要根据字典值对它们进行排序,这样我得到的列表将是:
>>> [['3D'], ['4C'], ['4D'], ['5D'], ['JC'], ['JS'], ['2C'], ['4C', '4D'], ['JC', 'JS'], ['3D', '4D', '5D']]
目前这是一个相当简单的实现,但我希望能够以更复杂的方式对其进行排序。在
这可能是一个很好的例子,说明何时从Python中的基本数据结构转换到类。在
考虑:
尝试一些卡片:
^{pr2}$打印:
因为我们在类中定义了一个排序顺序,所以复杂的排序很容易,基于不同游戏的排名也很容易。在
以您的名片列表为例:
印刷品:
再做一点工作,你就可以定义手和什么手胜过另一只手。在
您可以在经典的Python书籍《如何像计算机科学家一样思考:使用Python学习HERE中阅读更多关于这个例子的内容
试试这个:
ideone
相关问题 更多 >
编程相关推荐