for 循環、dict.setdefault(key,[]).append(value)、result=defaultdict(list)


運用for 循環處理各種數據

In [24]:
words =['apple','pare','banana','and','peach']
 
 
In [57]:
byletter={}
for word in words:
    letter=word[0]
    if letter in byletter:
        byletter[letter].append(word)
    else:
        byletter[letter]=[word]
 
In [58]:
byletter
 
 
Out[58]:
{'a': ['apple', 'and'], 'p': ['pare', 'peach'], 'b': ['banana']}
 

dict.setdefault(key,[]).append(value)

setdefault是字典對象的一個實例方法,接收兩個參數,用法和字典的get方法類似,但是比 get 更強大。 它可以為給字典的key設定一個默認值(如果key不在字典中的時候) get 方法設置的默認值不會改變原字典, 而setdefault設置的默認值會改變原字典的值。

In [41]:
by_letters={}
for word in words:
    letter=word[0]
    by_letters.setdefault(letter,[]).append(word)
 
 
In [43]:
  by_letters
 
 
Out[43]:
{'a': ['apple', 'and'], 'p': ['pare', 'peach'], 'b': ['banana']}
In [59]:
 
data=[('p',1),('p',2),('p',3),('h',4),('h',5),('h',6)]
 
result=defaultdict(list)

defaultdict是屬於collections 模塊下的一個工廠函數,用於構建字典對象,接收一個函數(可調用)對象為作為參數。參數返回的類型是什么,key對應value就是什么類型。

In [66]:
  from collections import defaultdict
results=defaultdict(list)
data=[('p',1),('p',2),('p',3),('h',4),('h',5),('h',6)]
for (key,value) in data:
    results[key].append(value)
 
 
In [67]:
results
 
 
Out[67]:
defaultdict(list, {'p': [1, 2, 3], 'h': [4, 5, 6]})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM