Python 如何打印添加了一些偏差的dict值?

Python 如何打印添加了一些偏差的dict值?,python,dictionary,random,Python,Dictionary,Random,我在弄清楚如何附加字典值时遇到了一些麻烦,这样每次打印它们时,它们都会有稍微不同的e.I±10%的偏差 示例代码: shop = { 'Milk': 1.24, 'Coffee': 8.68, 'Bread': 1.99, 'Apples': 0.96, 'Cakes': 12.96, } 使商店的东西。价值变化±10%: random_keys = random.choices(population=list(stock.keys()), k=random.randrange(

我在弄清楚如何附加字典值时遇到了一些麻烦,这样每次打印它们时,它们都会有稍微不同的e.I±10%的偏差

示例代码:

shop = {
 'Milk': 1.24,
 'Coffee': 8.68,
 'Bread': 1.99,
 'Apples': 0.96,
 'Cakes': 12.96,

}
使商店的东西。价值变化±10%:

 random_keys = random.choices(population=list(stock.keys()), k=random.randrange(2, 5))
 print({k: stock[k] for k in random_keys})
最终结果:

{'Milk': 1.35, 'Cakes' : 12.82} 
如果需要10%的百分比偏差-->则必须在0.9和1.1之间相乘


如果需要10%的百分比偏差-->每次要用新的随机值打印词典时,必须在0.9和1.1之间相乘,可以调用此函数:

import random
from typing import Dict    


def print_with_deviations(my_dict: Dict[str, float],
                          *,
                          deviation: float = 0.1) -> None:
    print({key: f'{value * random.uniform(1 - deviation, 1 + deviation):.2f}' 
           for key, value in my_dict.items()})
就像这样:
打印带有偏差的内容(车间)

或者,如果您不希望使用10%,而是希望使用另一个偏差:

print_with_deviations(shop, deviation=0.2)

每次要使用新的随机值打印词典时,可以调用此函数:

import random
from typing import Dict    


def print_with_deviations(my_dict: Dict[str, float],
                          *,
                          deviation: float = 0.1) -> None:
    print({key: f'{value * random.uniform(1 - deviation, 1 + deviation):.2f}' 
           for key, value in my_dict.items()})
就像这样:
打印带有偏差的内容(车间)

或者,如果您不希望使用10%,而是希望使用另一个偏差:

print_with_deviations(shop, deviation=0.2)

到底是什么问题?例如,每次都将值设置为随机值,但仅在指定范围内,即±10%。我尝试使用append和for函数,但我总是遇到不同的错误,或者代码似乎没有太多意义。到底是什么问题?例如,每次都将值设置为随机值,但仅在指定的范围内,即±10%。我尝试使用append和for函数,但我总是会遇到不同的错误,或者代码似乎没有太多意义。