pic*_*olo 2 python random list-comprehension list
嗨我有一个数字列表,其中有一些'无',我想用列表中不是'无'的其他数字替换.
例如,对于以下列表:
listP = [ 2.5, 3, 4, None, 4, 8.5, None, 7.3]
Run Code Online (Sandbox Code Playgroud)
我希望这两个None项目被列表中的随机数替换,而这些数字本身并不是一个None.所以在这个例子中,None可以用2.5或3或4或8.5或7.3代替.
无论如何在一行代码中执行此操作?
你需要使用两个步骤; 提取非None值以random.choice()供选择,然后使用列表推导来实际选择随机值:
import random
numbers = [n for n in listP if n is not None]
result = [n if n is not None else random.choice(numbers) for n in listP]
Run Code Online (Sandbox Code Playgroud)