📜  Python|从列表中选择随机值

📅  最后修改于: 2022-05-13 01:55:06.745000             🧑  作者: Mango

Python|从列表中选择随机值

生成随机数一直是游戏或各种类型赌博等日常编程中的有用工具。因此,任何编程语言中的知识和速记总是一个加分项。

让我们讨论从列表中选择随机值的所有不同方法。

方法 #1:使用random.choice()

此方法是为从容器中获取随机数的特定目的而设计的,因此是实现从列表中获取随机数这一任务的最常用方法。

# Python3 code to demonstrate 
# to get random number from list
# using random.choice()
import random
  
# initializing list 
test_list = [1, 4, 5, 2, 7]
  
# printing original list 
print ("Original list is : " + str(test_list))
  
# using random.choice() to 
# get a random number 
random_num = random.choice(test_list)
  
# printing random number
print ("Random selected number is : " + str(random_num))
输出:
Original list is : [1, 4, 5, 2, 7]
Random selected number is : 1

方法 #2:使用random.randrange()

该方法用于生成一个范围内的随机数,对于列表,我们可以指定范围为0到它的长度,并得到索引,然后得到对应的值。这也提供了在某些倍数的索引处获取甚至放置的元素或元素的选项。

# Python3 code to demonstrate 
# to get random number from list
# using random.randrange
import random
  
# initializing list 
test_list = [1, 4, 5, 2, 7]
  
# printing original list 
print ("Original list is : " + str(test_list))
  
# using random.randrange() to 
# get a random number 
rand_idx = random.randrange(len(test_list))
random_num = test_list[rand_idx]
  
# printing random number
print ("Random selected number is : " + str(random_num))
输出:
Original list is : [1, 4, 5, 2, 7]
Random selected number is : 7

方法 #3:使用random.randint()

还有另一种生成随机数的方法,这也可以用于生成一个范围内的任何数字,然后使用该数字索引,我们可以找到相应索引处的值,就像上面提到的技术一样。但它的不同之处在于它需要 2 个强制参数来表示范围。

# Python3 code to demonstrate 
# to get random number from list
# using random.randint()
import random
  
# initializing list 
test_list = [1, 4, 5, 2, 7]
  
# printing original list 
print ("Original list is : " + str(test_list))
  
# using random.randint() to 
# get a random number 
rand_idx = random.randint(0, len(test_list)-1)
random_num = test_list[rand_idx]
  
# printing random number
print ("Random selected number is : " + str(random_num))
输出:
Original list is : [1, 4, 5, 2, 7]
Random selected number is : 4

方法 #4:使用random.random()

该方法生成0到1范围内的浮点数。我们也可以使用此函数将结果相乘然后类型转换为int得到整数索引,然后得到对应的列表值。

# Python3 code to demonstrate 
# to get random number from list
# using random.random()
import random
  
# initializing list 
test_list = [1, 4, 5, 2, 7]
  
# printing original list 
print ("Original list is : " + str(test_list))
  
# using random.random() to 
# get a random number 
rand_idx = int(random.random() * len(test_list))
random_num = test_list[rand_idx]
  
# printing random number
print ("Random selected number is : " + str(random_num))
输出:
Original list is : [1, 4, 5, 2, 7]
Random selected number is : 7