最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

舉例講解Python中字典的合并值相加與異或對比

 更新時間:2016年06月04日 11:31:30   作者:mattkang  
這里我們來舉例講解Python中字典的合并值相加與異或對比,以不同的字典為對象來進行操作,,需要的朋友可以參考下

字典合并值相加
在統(tǒng)計匯總游戲數(shù)據(jù)的時候,有些數(shù)據(jù)是是每天用字典存的,當我要對多天匯總的時候,就需要合并字典了。
如果key相同的話它們的值就相加。
不能用update方法,因為用update方法則相同的key的值會覆蓋,而不是相加。
千言不如一碼。

def union_dict(*objs): 
  _keys = set(sum([obj.keys() for obj in objs],[])) 
  _total = {} 
  for _key in _keys: 
    _total[_key] = sum([obj.get(_key,0) for obj in objs]) 
  return _total 
 
obj1 = {'a':1,'b':2,'c':3} 
obj2 = {'a':1,'b':3,'d':4} 
print union_dict(obj1,obj2) 

 
輸出

{'a': 2, 'c': 3, 'b': 5, 'd': 4}

sum([obj.keys() for obj in objs],[])這句可能不太好理解。
其實sum()函數(shù)也有"鮮為人知的參數(shù)",即第2個參數(shù),start參數(shù),默認是0。
而且不止可以是int類型,還可以是其他支持+操作符的東西,比如[]。
利用這一點,可以對二層數(shù)組打平成一層。
比如

>>sum([[1,2,3],[4,5]],[])
[1,2,3,4,5]

對字典diff("異或")
在游戲中,我要監(jiān)控記錄物品系統(tǒng)中的背包變動情況。("異或"的結果是相同的消除,剩下不同的,即變動的)
假設背包的存儲結構是這樣的。
是一個字典,{物品id:數(shù)量}。
在背包類初始化的時候,把背包物品信息copy保存到一個oldbag變量,進行一些物品操作后(比如使用物品,領取物品獎勵等),在調用save()方法存進redis時,對新的bag字典與oldbag字典進行差異對比就得出變動情況了。
千言不如一碼。

def symmetric_difference(_oldobj,_newobj): 
  _oldkeys = _oldobj.keys() 
  _newkeys = _newobj.keys() 
  _diff = {} 
  for _key in set(_oldkeys + _newkeys): 
    _val = _newobj.get(_key,0) - _oldobj.get(_key,0) 
    if _val: 
      _diff[_key] = _val  
  return _diff  
 
oldobj = {'a':1,'b':2,'c':3} 
newobj = {'a':1,'b':3,'d':4} 
print symmetric_difference(oldobj,newobj) 

輸出

{'b': 1, 'd': 4,'c': -3}

代表玩家得到了1個'b'物品,4個'd'物品,失去了3個'c'物品。

相關文章

  • python win32 簡單操作方法

    python win32 簡單操作方法

    下面小編就為大家?guī)硪黄猵ython win32 簡單操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Python文件和異常處理小結

    Python文件和異常處理小結

    本章詳細介紹了Python中的文件操作和異常處理,包括文件的讀取和寫入、異常的捕獲和處理,以及JSON數(shù)據(jù)的存儲和重構代碼的最佳實踐,通過示例和解釋,幫助讀者掌握這些關鍵技能,感興趣的朋友一起看看吧
    2025-03-03
  • 教你如何利用python進行數(shù)值分析

    教你如何利用python進行數(shù)值分析

    今天教大家如何利用python進行數(shù)值分析,文中有非常詳細的代碼示例,對正在學習python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • Python如何根據(jù)時間序列數(shù)據(jù)作圖

    Python如何根據(jù)時間序列數(shù)據(jù)作圖

    這篇文章主要介紹了Python如何根據(jù)時間序列數(shù)據(jù)作圖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Python如何輸出警告信息

    Python如何輸出警告信息

    這篇文章主要介紹了Python如何輸出警告信息,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • pytorch hook 鉤子函數(shù)的用法

    pytorch hook 鉤子函數(shù)的用法

    這篇文章主要介紹了pytorch hook 鉤子函數(shù)的用法,Hook 是 PyTorch 中一個十分有用的特性,使用后可以不必改變網(wǎng)絡輸入輸出的結構,方便地獲取、改變網(wǎng)絡中間層變量的值和梯度,下文詳細介紹需要的小伙伴可以參考一下
    2022-03-03
  • Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用

    Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用

    Series是帶標簽的一維數(shù)組,可存儲整數(shù)、浮點數(shù)、字符串、Python 對象等類型的數(shù)據(jù),軸標簽統(tǒng)稱為索引,下面這篇文章主要給大家介紹了關于Python數(shù)據(jù)處理之pd.Series()函數(shù)的基本使用,需要的朋友可以參考下
    2022-06-06
  • 使用Python3?Boto3包刪除AWS?CloudFormation的棧(Stacks)

    使用Python3?Boto3包刪除AWS?CloudFormation的棧(Stacks)

    這篇文章主要介紹了如何使用Python3?Boto3刪除AWS?CloudFormation的棧(Stacks),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Python正則表達式教程之三:貪婪/非貪婪特性

    Python正則表達式教程之三:貪婪/非貪婪特性

    這篇文章主要介紹了Python正則表達式中貪婪/非貪婪特性的相關資料,文中通過示例代碼介紹的很詳細,對大家具有一定的參考價值,需要的朋友下面來一起看看吧。
    2017-03-03
  • Django博客系統(tǒng)注冊之創(chuàng)建用戶模塊應用

    Django博客系統(tǒng)注冊之創(chuàng)建用戶模塊應用

    本文主要介紹了Django博客系統(tǒng)注冊之創(chuàng)建用戶模塊應用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論

石阡县| 富平县| 清新县| 右玉县| 澳门| 固镇县| 西吉县| 潞城市| 黄山市| 西林县| 肇庆市| 类乌齐县| 张家口市| 竹溪县| 壶关县| 武定县| 武山县| 阿克陶县| 岚皋县| 墨竹工卡县| 双峰县| 芦溪县| 丹江口市| 芒康县| 崇义县| 杨浦区| 改则县| 北宁市| 合川市| 萝北县| 瑞丽市| 涿鹿县| 阳山县| 民丰县| 亳州市| 巨鹿县| 峡江县| 雷山县| 潢川县| 巩义市| 府谷县|