我无法弄清楚如何随机生成字符串。
在import random
之前创建一组list
之前,我目前正在使用choiceint = random.randint(1,X)
。除此之外,我被困住了。
我想让代码做的是从两个列表中选择字符串,然后创建一个新字符串。
例如list1 = ["bannana flavour"]
list2 = ["milk"]
然后它会得到“香蕉味”和“牛奶”并制作“香蕉味牛奶”。
这会从较大的池中选择以生成字符串,但我对如何生成半随机字符串一无所知。
我不知道这是否可以实现,但我们的想法是从列表中的选项中生成一个项目,然后将其放在另一个列表中。
如果这是不可能的,或者在没有大量非用户友好代码的情况下是不可能的,我想知道,虽然它是不利的,但我确实可以选择使用random.randint(1,X)
然后列出所有可能的组合random.randint = 1:
答案 0 :(得分:0)
Random有方法从列表中获取1个或多个东西,有/没有重复:
要获得两个列表之间的所有组合,您不需要任何随机性,您可以使用列表推导来获得所有可能性。如果你有两个dozends选项列表,那么生成所有组合是不明智的,只需从每个列表中抽取一个并返回该单个组合 - 需要更少的空间来存储它。
import random
def getAllPossibleWins(to,co):
"""Create all combinations of t and c as list of strings"""
return [f'{c} {t}' for t in to for c in co]
def getWin():
"""Returns a string with a randomized win."""
toys = ['cow','hare','car','plane'] # 1000 options
cols = ['red','green','blue'] # 1000 options
# instead of creating 1000000 combinations and draw once from it, draw from 1000 twice
return f'You win a {random.choice(cols)} {random.choice(toys)}.'
print(getWin())
print(getWin())
print(getWin())
print(getAllPossibleWins(toys,cols))
输出:
You win a blue plane.
You win a red car.
You win a green cow.
['red cow', 'green cow', 'blue cow', 'red hare', 'green hare', 'blue hare', 'red car',
'green car', 'blue car', 'red plane', 'green plane', 'blue plane']