我对Python非常陌生,正在开发一个随机名称生成器。在
我取名字和姓氏字符串并随机组合。在
我的问题是我经常得到相同的名字。不过,我希望程序能给我所有的名字组合。以下是基本程序:
import random
FirstName = "jay", "jim", "roy", "axel", "billy", "charlie", "jax", "gina", "paul",
"ringo", "ally", "nicky", "cam", "ari", "trudie", "cal", "carl", "lady", "lauren",
"ichabod", "arthur", "ashley", "drake", "kim", "julio", "lorraine", "floyd", "janet",
"lydia", "charles", "pedro", "bradley"
LastName = "barker", "style", "spirits", "murphy", "blacker", "bleacher", "rogers",
"warren", "keller"
First = random.choice(FirstName)
Last = random.choice(LastName)
print (First + " " + Last)
我想我刚刚意识到我的第二个问题。有些名字可以是姓,反之亦然。例如,Bradley可以是名字和姓氏。有没有可能把布拉德利的名字和姓氏,然后再加上一些逻辑,这样我就永远得不到和布拉德利·布拉德利一样的确切名字了吗?在
不要使用random,您应该使用for循环迭代组合,或者使用列表理解,过滤掉第一个和最后一个相同的不需要的结果,请参见https://docs.python.org/2/library/itertools.html#itertools.product:
如果您希望它们以psuedo随机顺序无重复,您可以使用随机洗牌在
^{pr2}$简单实现:对名字和姓氏使用集合,在选择姓氏时删除可能冲突的选择。不幸的是-由于
choice()
实现,需要一个解决方法来从集合中获取一个随机元素。所以我们取单元素样本,并使用单元素组中的第一个元素。在相关问题 更多 >
编程相关推荐