遍历 NamedTuples 列表并添加随机值
Iterate through list of NamedTuples and add random value
我有一个 NamedTuple
的列表(下面的简短摘录)并编写了一些代码以将相同的随机值添加到元组中的每个 a
和 b
值.该列表的长度会有所不同。
这工作正常,但我现在需要为每个 a
和 b
值添加不同的随机值。
因此,如所写,randomise
将生成一个介于 -5 和 5 之间的随机值,并将该值应用于 a
和 b
的所有实例。现在我想为 a
和 b
.
的每个实例添加不同的值
执行此操作的最快方法是什么?
摘录:
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]
我有一个 NamedTuple
的列表(下面的简短摘录)并编写了一些代码以将相同的随机值添加到元组中的每个 a
和 b
值.该列表的长度会有所不同。
这工作正常,但我现在需要为每个 a
和 b
值添加不同的随机值。
因此,如所写,randomise
将生成一个介于 -5 和 5 之间的随机值,并将该值应用于 a
和 b
的所有实例。现在我想为 a
和 b
.
执行此操作的最快方法是什么?
摘录:
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]