欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python中Collection的使用小技巧

系統(tǒng) 1752 0

本文所述實例來自獨立軟件開發(fā)者 Alex Marandon,在他的博客中曾介紹了數(shù)個關(guān)于 Python Collection 的實用小技巧,在此與大家分享。供大家學(xué)習(xí)借鑒之用。具體如下:

1.判斷一個 list 是否為空

傳統(tǒng)的方式:

            
if len(mylist):
  # Do something with my list
else:
  # The list is empty

          

由于一個空 list 本身等同于 False,所以可以直接:

            
if mylist:
  # Do something with my list
else:
  # The list is empty


          

2.遍歷 list 的同時獲取索引

傳統(tǒng)的方式:

            
i = 0
for element in mylist:
  # Do something with i and element
  i += 1

          

這樣更簡潔些:

            
for i, element in enumerate(mylist):
  # Do something with i and element
  pass

          

3.list 排序

在包含某元素的列表中依據(jù)某個屬性排序是一個很常見的操作。例如這里我們先創(chuàng)建一個包含 person 的 list:

            
class Person(object):
  def __init__(self, age):
    self.age = age
 
persons = [Person(age) for age in (14, 78, 42)]

          

傳統(tǒng)的方式是:

            
def get_sort_key(element):
  return element.age
 
for element in sorted(persons, key=get_sort_key):
  print "Age:", element.age

          

更加簡潔、可讀性更好的方法是使用 Python 標準庫中的 operator 模塊:

            
from operator import attrgetter
 
for element in sorted(persons, key=attrgetter('age')):
  print "Age:", element.age

          

attrgetter 方法優(yōu)先返回讀取的屬性值作為參數(shù)傳遞給 sorted 方法。operator 模塊還包括 itemgetter 和 methodcaller 方法,作用如其字面含義。

4.在 Dictionary 中元素分組

和上面類似,先創(chuàng)建 Persons:

            
class Person(object):
  def __init__(self, age):
    self.age = age
 
persons = [Person(age) for age in (78, 14, 78, 42, 14)]

          

如果現(xiàn)在我們要按照年齡分組的話,一種方法是使用 in 操作符:

            
persons_by_age = {}
 
for person in persons:
  age = person.age
  if age in persons_by_age:
    persons_by_age[age].append(person)
  else:
    persons_by_age[age] = [person]
 
assert len(persons_by_age[78]) == 2

          

相比較之下,使用 collections 模塊中 defaultdict 方法的途徑可讀性更好:

            
from collections import defaultdict
 
persons_by_age = defaultdict(list)
 
for person in persons:
  persons_by_age[person.age].append(person)

          

defaultdict 將會利用接受的參數(shù)為每個不存在的 key 創(chuàng)建對應(yīng)的值,這里我們傳遞的是 list,所以它將為每個 key 創(chuàng)建一個 list 類型的值。

本文示例僅為程序框架,具體功能還需要讀者根據(jù)自身應(yīng)用環(huán)境加以完善。希望本文所述實例對大家學(xué)習(xí)Python能起到一定的幫助作用。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品视频一区二区三区在线观看 | 久久综合久久久久 | 天堂资源| 毛片免费观看网址 | 热99这里只有精品 | 久久精品国产99国产精品澳门 | 激情视频免费在线观看 | 欧美一级毛片欧美大尺度一级毛片 | 欧美视频在线一区 | 泰国一级毛片aaa下面毛多 | 猫鼠游戏电影在线观看免费版 | 国产精品视频在线观看 | 日韩在线视频免费观看 | 嫩草视频在线播放 | 亚洲欧洲日本天天堂在线观看 | 五月天激激婷婷大综合蜜芽 | 美女下面直流白浆视频 | 国产精品大片在线观看 | 成人看的一级毛片 | 欧美二区视频 | 欧美三级成人理伦 | 高清国产一区二区三区四区五区 | 国产亚洲福利精品一区 | 日韩午夜激情视频 | 一级黄色毛片子 | 久久亚洲一区二区 | 日本亚洲国产精品久久 | 丁香六月婷婷在线 | 五月天婷婷综合 | 天天摸天天爽天天澡视频 | 色噜噜狠狠色综合久 | 欧美videosex性欧美成人 | 99这里只有精品视频 | WWW.亚洲最大夜色伊人 | 一级毛片免费观看不卡视频 | 国产一区二区免费 | 午夜精品视频在线 | 亚洲一区二区三区免费在线观看 | 国产精品久久久久久久久久免费看 | 欧美亚洲国产一区 | 国产精品久久久久久久免费 |