- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一副由以下代码构建的纸牌:
import itertools
suits = "DCHS"
ranks = "23456789TJQKA"
cardDeck = list(set(itertools.product(ranks, suits)))
我想按等级对一副牌进行排序。执行 sorted(cardDeck, key=lambda x: x[0]) 按字母顺序排列列表 (23456789AJKQT),但我想找到一种方法来保持排列顺序 (23456789TJQKA)。
我一直在尝试为 key= 参数获取一个 lambda 函数,该函数将遍历 ranks 字符串中的字符,但到目前为止我遇到了困难。也许我需要制作字符的西装和等级列表而不是字符串?
最佳答案
您的 ranks
列表中已经有了排名。只需在您的分拣机中使用它:
print sorted(cardDeck, key=lambda x: ranks.index(x[0]))
可以看到full thing here:
import itertools
suits = "DCHS"
ranks = "23456789TJQKA"
cardDeck = list(set(itertools.product(ranks, suits)))
print sorted(cardDeck, key=lambda x: ranks.index(x[0]))
给予:
[('2', 'S'), ('2', 'C'), ('2', 'H'), ('2', 'D'), ('3', 'D'), ('3', 'H'), ('3', 'C'), ('3', 'S'), ('4', 'D'), ('4', 'S'), ('4', 'C'), ('4', 'H'), ('5', 'H'), ('5', 'S'), ('5', 'D'), ('5', 'C'), ('6', 'C'), ('6', 'D'), ('6', 'H'), ('6', 'S'), ('7', 'C'), ('7', 'D'), ('7', 'S'), ('7', 'H'), ('8', 'S'), ('8', 'C'), ('8', 'H'), ('8', 'D'), ('9', 'H'), ('9', 'S'), ('9', 'D'), ('9', 'C'), ('T', 'H'), ('T', 'C'), ('T', 'D'), ('T', 'S'), ('J', 'S'), ('J', 'C'), ('J', 'H'), ('J', 'D'), ('Q', 'H'), ('Q', 'C'), ('Q', 'D'), ('Q', 'S'), ('K', 'S'), ('K', 'H'), ('K', 'D'), ('K', 'C'), ('A', 'S'), ('A', 'D'), ('A', 'H'), ('A', 'C')]
关于Python - 按不均匀列表对元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35282170/
我需要在半径R的圆内生成一个均匀随机点。 我意识到,通过在区间 [0 ... 2π) 中选择均匀随机的角度,并在区间 (0 ... R) 中选择均匀随机的半径,我最终会得到更多的点朝向中心,因为对于两
我想在一个正方形内生成 N 个点(均匀地)。我怎样才能做到这一点? 最佳答案 非常酷的问题,比我想象的要困难得多,但这就是想法。有关于 n 边形的论文,但我只会做正方形。因此,圆的均匀分布是一个常见问
考虑以下示例: import itertools import numpy as np a = np.arange(0,5) b = np.arange(0,3) c = np.arange(0,7)
SQL Server 将一组值分成 5 组,每组的 sum(count) 应该均匀分布。 表仅包含 2 列 rid 和 count。 create table t1(rid int, count in
我有以下简单的 HTML。 A B C 和 CSS: ul { width: 100%; display: flex; flex-direction:
我是一名优秀的程序员,十分优秀!