m0_54240364
2021-09-23 15:30
采纳率: 50%
浏览 36
已结题

python随机生成n个满足如下要求的手机号码

1.手机号码必须是13、15、17、18开头
2.手机号码相同数字出现的次数不能大于5次
3.任意两个手机号不能重复
4.生成的手机号码需保存在列表tels中,并且按照升序进行排列

初学python,请求帮助~

  • 收藏

1条回答 默认 最新

  • 吃肉的小馒头 2021-09-23 17:11
    已采纳
    
    def get_random_tels(n):
        import random
        m = 0
        s = [3, 5, 7, 8]
        last = []
        while m < n:
            lst9 = [random.choice(range(10)) for _ in range(9)]
            res = [1] + [random.choice(s)] + lst9
            if len(set(res)) >= 7:
                if res not in last:
                    last.append(res)
                    m += 1
        tels = []
        for lst in last:
            res = [str(i) for i in lst]
            phone = int(''.join(res))
            tels.append(phone)
        tels.sort()
        
        return tels
    
    get_random_tels(6)  # 随机生成6个
    # [13222605719, 13253435076, 13654054562, 13997673840, 15029032380, 15420923374]
    
    1 打赏 评论

相关推荐 更多相似问题