Python - 根据另一个字典的输入更新一个字典中的值

时间:2017-09-06 01:45:44

标签: python dictionary

我试图找出一种基于第二个字典输入操作一个字典的方法。我正在进行模拟自动售货机的练习。基于下面的代码,我的目的是根据从硬币字典中选择的一个选项更新coin_stock字典。例如,如果在menu_str中选择'n',这意味着我已经存了一个镍币。这意味着我的coin_stock ['nickles']应该从25更新到26.我试图概括代码,以便在menu_str中输入任何硬币选项时更新coin_stock。我对python很新。我尝试了不同的东西,但下面的代码尽可能接近。

HttpServletRequest requestObj = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String url = requestObj.getRequestURL();

2 个答案:

答案 0 :(得分:0)

您的if语句不起作用,例如对于镍,std_dev_of_sample_meanssample_sizes2 = np.arange(1,1001,100) mean_of_sample_means = [] std_dev_of_sample_means = [] for i in sample_sizes2: probabilities=make_throws(200,i) mean_of_sample_means.append(np.mean(probabilities)) std_dev_of_sample_means.append(np.std(probabilities)) std_error = std_dev_of_sample_means[i]/(i^.5) print(std_dev_of_sample_means) print(std_error) ,因此menu_strn。只需检查coin[menu_str]应该做你想做的事情

5

答案 1 :(得分:0)

我将把它作为一个机会来插入Python强大的集合类型。

保持计数

查看Python的stdlib Counter()库中的collections类:

https://docs.python.org/2/library/collections.html#collections.Counter

将Counter对象想象为一个动力不足的词典,旨在保持统计。它非常适合在数据存储中保存不同硬币类型的用例:

coin_store = Counter({'nickles': 25, 'dimes': 25, 'quarters': 25, 'ones': 0, 'fives': 0})
print(coin_store)  # Counter({'nickles': 25, 'dimes': 25, 'quarters': 25, 'ones': 0, 'fives': 0})
coin_store['nickles'] += 1
print(coin_store)  # Counter({'nickles': 26, 'dimes': 25, 'quarters': 25, 'ones': 0, 'fives': 0})

合并计数器

关于找到"一种根据第二个字典的输入操作一个字典的方法"我们可以创建一个字典,其中包含一个数据存储中的所有键和值,这些数据存储使用另一个键和值来更新:

def update_store(coin_store1, coin_store2):
    """Updates the contents of a coin store with values from another store."""
    for coin_type, coin_num in coin_store2.items():
        coin_store1[coin_type] += coin_num

coin_store = Counter({'nickles': 6, 'dimes': 5, 'quarters': 10})
update_store(coin_store, Counter({'quarters': 5, 'ones': 3, 'fives': 10}))
print(coin_store)  # Counter({'quarters': 15, 'fives': 10, 'nickles': 6, 'dimes': 5, 'ones': 3})

现在,您可以在代码中使用类似的内容根据用户输入进行更新。注意:无论您使用何种更新函数,都需要对无效的硬币类型和值进行错误处理。

Python词典

可能值得花一些时间来理解词典支持的不同操作,可能从.get().items()开始,然后继续.update()和{{1在这里看到它们:

https://docs.python.org/2/library/stdtypes.html#mapping-types-dict

这应该回答您的问题,并希望您有兴趣探索Python的stdlib中提供的其他类型的集合。祝你好运!