实施例:如何使用列表的random.choice作为其他列表中random.choice的条件?
element = ['Flaming', 'Cold']
fire_properties = ['of Fire', 'of Flame']
cold_properties = ['of Ice', 'of Frost']
相当简单。想要制作一个文本随机发生器,并根据这个例子得到诸如“火焰之剑”的结果。不幸的是,我不确定如何使第一个列表的结果能够从第二个结果的列表中定义出结果。
实施例:如何使用列表的random.choice作为其他列表中random.choice的条件?
element = ['Flaming', 'Cold']
fire_properties = ['of Fire', 'of Flame']
cold_properties = ['of Ice', 'of Frost']
相当简单。想要制作一个文本随机发生器,并根据这个例子得到诸如“火焰之剑”的结果。不幸的是,我不确定如何使第一个列表的结果能够从第二个结果的列表中定义出结果。
嗯,我第一次写这个,但鲍里斯的更简洁,所以我决定不提交......但对于初学者来说可能会更易读。
quality_list = ['Flaming', 'Frozen', 'etc.']
quality = random.choice(quality_list)
item_list = ['Sword', 'Dagger', 'Mace', 'etc.']
item = random.choice(item_list)
hot_qualities = ['Flaming', ...]
cold_qualities = ['Frozen', ...]
hot_elements = ['Fire', 'Inferno']
cold_elements = ['Cold', 'Frost']
if quality in hot_qualities:
element = random.choice(hot_elements)
elif quality in cold_qualities:
element = random.choice(cold_elements)
# NB this is Python 2.X's print and string format, adjust accordingly for 3.X
print "%s %s of %s" % (quality, item, element)
虽然在实际项目中我会像鲍里斯那样进一步概括它。
怎么样这类的解决方案:你构建地图形容词和名词的可能的组合,并选择其中的一种:
weapon_map = {"Flaming": ["Fire", "Inferno"], "Frozen": ["Cold", "Frost"]}
selection = random.choice(weapon_map.items())
print (selection[0] + " of " + random.choice(selection[1]))
这种做法更容易维护和理解。
太糟糕了我从来没有见过任何你刚才写的东西(除了“打印”)后,一段时间的学习蟒蛇(与老师),实际编程课程甚至开始XD。甚至不知道“哈希”是什么。 – user1275670 2012-03-17 12:03:14
@ user1275670:然后我会说http://www.google.com/search?q=python+tutorial可能是一个开始:) – 2012-03-17 12:07:03
猜测我可能会启动一个Python课程:) 至于关键字 - 阅读[this](http://pyref.infogami.com/in)或向下滚动到'in and not in'in [Python reference](http://docs.python.org/reference/expressions.html#not -在)。 – egor83 2012-03-17 12:27:28