📜  Python – 生成列表中除 K 之外的随机数

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

Python – 生成列表中除 K 之外的随机数

有时,在使用Python时,我们可能会遇到需要生成随机数的问题。这似乎很容易,但有时我们需要对其稍作改动。也就是说,我们需要从除 K 之外的列表中生成随机数。让我们讨论可以执行此任务的某些方法。

方法#1:使用choice() + 列表推导
上述功能的组合可用于执行此任务。在此,我们首先使用列表推导过滤掉除 K 之外的数字,然后将该列表提供给choice() 以生成随机数。

# Python3 code to demonstrate 
# Generate random number except K in list
# using choice() + list comprehension
import random
  
# Initializing list 
test_list = [4, 7, 8, 4, 6, 10]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing K 
K = 4
  
# Generate random number except K in list
# using choice() + list comprehension
res = random.choice([ele for ele in test_list if ele != K])
  
# printing result 
print ("The random number except K is : " + str(res))
输出 :
The original list is : [4, 7, 8, 4, 6, 10]
The random number except K is : 8

方法 #2:使用filter() + lambda + choice()
这是可以执行此任务的另一种方式。在此,我们执行使用过滤器和 lambda 创建新列表的方法。

# Python3 code to demonstrate 
# Generate random number except K in list
# using choice() + filter() + lambda
import random
  
# Initializing list 
test_list = [4, 7, 8, 4, 6, 10]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Initializing K 
K = 4
  
# Generate random number except K in list
# using choice() + filter() + lambda
res = random.choice(list(filter(lambda ele: ele != K, test_list)))
  
# printing result 
print ("The random number except K is : " + str(res))
输出 :
The original list is : [4, 7, 8, 4, 6, 10]
The random number except K is : 8