2010-03-06 93 views
-1

我在Stack Overflow主题上发现了一个关于初学者应该学习新语言的问题的建议。一位用户发布了一个非常好的从初学者到高级的问题列表,可以帮助您了解一门语言。其中一个问题是创建电话簿,在电话簿中随机拨打电话号码和随机人员,用户应该能够搜索电话号码并找到该人,反之亦然。你如何随机生成x个值并存储它们?

那么,如何随机生成x数量的值并存储它们,而不需要数据库,专门关注Python和Ruby。

+0

这里“存储它们”是什么意思?在内存中,在磁盘上...? – 2010-03-06 16:49:26

+0

你的问题含糊不清。你需要帮助制作随机的电话号码和合理的名字吗?你需要帮助存储这些信息的结构吗?练习是否明确要求一定数量的名称,强制将解决方案强制给DBMS后端,还是有意限制,以便几个类似哈希的结构可以做到? – mjv 2010-03-06 16:58:52

+0

通过存储它们,我的意思是记住这些值......我不确定是否将它们存储在数组或列表中,或者完全不同的东西。 – 2010-03-06 17:32:15

回答

1

您需要定义一些更多的参数,然后才能解决此问题。

  • 电话号码是否对每个人都是唯一的?
  • 你将如何存储名称?在不同的字符串中的名字和姓氏?所有在一个字符串?
  • 你想支持模糊匹配吗?
  • 你想提供反向查找功能吗? (I.E.根据电话号码查找某人?)

在Python中,您可以使用sets,lists和/或dicts完成所有这些工作,但您也可以查看sqlite3模块。

要生成的字母Python中的随机字符串你做:

import random 
import string 

minLength = 5 # the minimum length of the string. 
maxLength = 15 # the maximum length of the string 

randstring = string.join([random.choice(string.lowercase) 
    for i in range(random.randrange(minlength,maxlength+1))], '') 

做数字相同,只是更换random.lowercase [1,2,3,4,5,6,7 ,8,9,0]

0

使用Python,您可以使用random模块来生成随机数。为了存储电话号码,姓名,联系人等,您可以使用数据库,例如SQLite