如何生成包含字符串的随机元组[重复]

问题描述 投票:0回答:3

这个问题在这里已有答案:

我的目标是能够生成由3个变量组成的随机元组。 2是浮点(x,y坐标),最后一个是字符串。每个元组的格式应为(float,float,string)。我很确定x,y很容易,但我不确定它是否可以生成一个字符串作为第三个参数。字符串应该是集合中的随机选择。例如,假设我有一个字符串列表[“one”,“two”,“three”]。我希望我生成的元组由两个随机浮点数和该集合中的一个字符串组成。我正在考虑类似下面的代码

[(randint(0, 180), randint(0, 180)) for _ in range(100)]

再一次只是为了澄清我只是想弄清楚是否可以在集合中添加一个字符串作为我的元组中的第三个变量

python string list tuples
3个回答
1
投票

使用random.choice

import random
strings = ['one', 'two', 'three']
[(random.randint(0, 180), random.randint(0, 180), random.choice(strings)) for _ in range(100)]

1
投票
[(randint(0, 180), randint(0, 180)) for _ in range(100)]

这不会生成随机浮点数,而是生成随机整数,如函数名称所示。代替:

[(uniform(0, 180), uniform(0, 180), choice(["one,"two","three"]) for _ in range(100)]

注意:

random.uniform在范围内生成随机浮点数(0,180)

random.choice从[“one”,“two”,“three”]中选择一个随机元素


0
投票

您可以获取字符串列表索引的随机数,并使用它来获取随机字符串

list_of_strings = ["one", "two" , "three"]

print [(randint(0, 180), randint(0, 180), list_of_strings[randint(0, len(list_of_strings) -1 )]) for _ in range(100)]
© www.soinside.com 2019 - 2024. All rights reserved.