您好,我有一个数字列表,其中包含一些“无”,我想将其替换为列表中非“无”的其他数字。
例如,对于以下列表:
listP = [ 2.5, 3, 4, None, 4, 8.5, None, 7.3]
我希望将两个 None
项替换为列表中本身不是 None
的随机数。因此,在此示例中,None 可以替换为 2.5、3、4、8.5 或 7.3。
是否可以通过一行代码来完成此操作?
最佳答案
您需要使用两个步骤;提取 random.choice()
的非 None 值进行选择,然后使用列表理解来实际选择随机值:
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]
关于Python 替换列表中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35794227/