背景:从10w个数中随机取出54个数组成一副牌
方法一:使用集合
def poker(): p = set() while True: a = randint(1, 1000000) % 54 p.add(a)if len(p) == 54: break return p
方法二:使用列表
def poker(): p = [] while True: a = randint(1, 1000000) % 54 if a not in p: p.append(a) if len(p) == 54: break return p
集合比列表的运行速度快的多
列表的时间复杂度是二次方增长,时间复杂度O(N^2),集合的时间复杂度是O(N)
列表底层是链表,集合底层是hash表