想实现这样一个目标:
生成0-1000的随机数,当随机数落在1-56间时,输出person=‘北京’
当随机数落在57-110,输出person=‘天津’
当随机数落在110-130,输出person=‘河北’
......
以此类推随机按比例生成全国31各省市的人员,不想使用if语句逐层实现,会比较麻烦。请问有什么便捷的方法吗?不甚感激!
# -*- 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))
北京
北京
天津
河北
山东
生成一个数组映射表:
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]直接转成对应的字符串。