遍历 NamedTuples 列表并添加随机值

Iterate through list of NamedTuples and add random value

我有一个 NamedTuple 的列表(下面的简短摘录)并编写了一些代码以将相同的随机值添加到元组中的每个 ab 值.该列表的长度会有所不同。

这工作正常,但我现在需要为每个 ab 值添加不同的随机值。

因此,如所写,randomise 将生成一个介于 -5 和 5 之间的随机值,并将该值应用于 ab 的所有实例。现在我想为 ab.

的每个实例添加不同的值

执行此操作的最快方法是什么?

摘录:

list_one = [Test(a=820, b=625, time=1643282249.9990437), Test(a=820, b=624, time=1643282250.0470896), Test(a=820, b=623, time=1643282250.1034527), Pass(test_type='do1', pass='ffg3', time=1643282250.7834597)]

代码:

randomise = random.randint(-5, 5)
list_one = [Test(t.a + randomise, t.b + randomise, t.time) if isinstance(t, Test) else t for t in list_one]

您可以只创建一个 lambda,它会 可能 每次调用时创建不同的偏移量:

randomise = lambda: random.randint(-5, 5)
list_one = [Test(t.a + randomise(), t.b + randomise(), t.time) if isinstance(t, Test) else t for t in list_one]