如何打印一个带有一些偏差的字典?

时间:2017-12-04 20:58:06

标签: python dictionary random

我在弄清楚如何附加我的字典值时会遇到一些麻烦,这样每次打印它们时,它们的偏差都会略有不同。

示例代码:

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} 

2 个答案:

答案 0 :(得分:1)

import random

for key in shop:

   print ( key, '%.2f' %(shop[key]*random.uniform(0.9,1.1)))

如果您需要10%的百分比偏差 - >你必须在0.9和1.1之间相乘

答案 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()})

就像这样:print_with_deviations(shop)
或者,如果你想使用不是10%而是另一个偏差:

print_with_deviations(shop, deviation=0.2)