关于List和String有意思的几个应用
1. List:all_equal
功能:验证列表中的所有元素是否是都一样的。
解析:该技巧是使用[1:] 和 [:-1] 来比较所给定列表中的所有元素。
举例:
2. List:all_unique
功能:如果列表所有值都是唯一的,返回 True,否则 False
解析:在给定列表上使用set()方法去重,一次来比较它和原列表的长度。
举例:
3. List:difference功能实现:返回两个iterables间的差异。
解读:创建b的集合,使用a的列表推导式保留不在_b中的元素。
举例:
4. List:flatten
功能:一次性的整合列表。
解析:使用嵌套的列表提取子列表中的每个值。
举例:
5. List:shuffle
功能:将列表元素顺序随机打乱。
解析:使用(Fisher-Yates算法)重新排序列表元素。
Fisher-Yates:
_Yates的原理就是把从1到n的顺序候选集随机打乱,
做法就是
第1次从1-n的候选集合随机选个数,拿出此数,并把它从候选集合剔除(候选集合n-1)。
第2次从1-n-1的候选集合随机选个数,拿出此数,并把它从候选集合剔除(候选集合n-2)。
第2次从1-n-2的候选集合随机选个数,拿出此数,并把它从候选集合剔除(候选集合n-3)。
以此类推