daitianxie
daitianxie
2019-10-31 09:36
采纳率: 92%
浏览 769

python代码进行分类,生成随机数据

想实现这样一个目标:

生成0-1000的随机数,当随机数落在1-56间时,输出person=‘北京’
当随机数落在57-110,输出person=‘天津’
当随机数落在110-130,输出person=‘河北’
......

以此类推随机按比例生成全国31各省市的人员,不想使用if语句逐层实现,会比较麻烦。请问有什么便捷的方法吗?不甚感激!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • caozhy
    已采纳
    # -*- coding: UTF-8 -*-
    
    def getProvince(x):
        list1 = [ "北京", "天津", "河北", "山东" ]
        list2 = [ 56, 110, 130, 1000 ]
        for i in range(len(list2)):
            if (x < list2[i]):
                return list1[i]
        else:
            return ""
    
    print(getProvince(10))
    print(getProvince(20))
    print(getProvince(60))
    print(getProvince(110))
    print(getProvince(500))
    

    北京
    北京
    天津
    河北
    山东

    点赞 评论
  • bobhuang
    bobhuang 2019-10-31 09:51

    生成一个数组映射表:

    a = ['beijing' for i in range(56)]
    a += ['tianjing' for i in range(110-57+1)]
    a += ['hebei' for i in range(130-110+1)]
    
    

    之后生成随机数x, 用a[x]直接转成对应的字符串。

    点赞 评论

相关推荐