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

Python中Collection的使用小技巧

 更新時間:2014年08月18日 16:05:38   投稿:shichen2014  
這篇文章主要介紹了Python中Collection的使用小技巧,對初學(xué)者來說有不錯的學(xué)習(xí)借鑒價值,需要的朋友可以參考下

本文所述實(shí)例來自獨(dú)立軟件開發(fā)者 Alex Marandon,在他的博客中曾介紹了數(shù)個關(guān)于 Python Collection 的實(shí)用小技巧,在此與大家分享。供大家學(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 標(biāo)準(zhǔn)庫中的 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)境加以完善。希望本文所述實(shí)例對大家學(xué)習(xí)Python能起到一定的幫助作用。

相關(guān)文章

  • Pycharm導(dǎo)包失敗問題及解決

    Pycharm導(dǎo)包失敗問題及解決

    這篇文章主要介紹了Pycharm導(dǎo)包失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 詳解Python中 __get__和__getattr__和__getattribute__的區(qū)別

    詳解Python中 __get__和__getattr__和__getattribute__的區(qū)別

    __get__、__getattr__、__getattribute都是訪問屬性的方法,但作用不太相同,這里我們就來詳解Python中 __get__和__getattr__和__getattribute__的區(qū)別:
    2016-06-06
  • Windows下實(shí)現(xiàn)將Pascal VOC轉(zhuǎn)化為TFRecords

    Windows下實(shí)現(xiàn)將Pascal VOC轉(zhuǎn)化為TFRecords

    今天小編就為大家分享一篇Windows下實(shí)現(xiàn)將Pascal VOC轉(zhuǎn)化為TFRecords,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python實(shí)現(xiàn)批量命名照片

    python實(shí)現(xiàn)批量命名照片

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量命名照片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • python?列表套json字典根據(jù)相同的key篩選數(shù)據(jù)

    python?列表套json字典根據(jù)相同的key篩選數(shù)據(jù)

    這篇文章主要介紹了python?列表套json字典根據(jù)相同的key篩選數(shù)據(jù),文章基于python的相關(guān)資料展開詳細(xì)的內(nèi)容介紹需要的小伙伴可以參考一下
    2022-04-04
  • 詳解Python中的各種函數(shù)的使用

    詳解Python中的各種函數(shù)的使用

    這篇文章主要介紹了詳解Python中的各種函數(shù)的使用,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python調(diào)用DeepSeek?API的案例詳細(xì)教程

    Python調(diào)用DeepSeek?API的案例詳細(xì)教程

    這篇文章主要為大家詳細(xì)介紹了以?Python?為例的調(diào)用?DeepSeek?API?的小白入門級詳細(xì)教程,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-02-02
  • Python龍貝格法求積分實(shí)例

    Python龍貝格法求積分實(shí)例

    今天小編就為大家分享一篇Python龍貝格法求積分實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python繪制直方圖的示例代碼

    Python繪制直方圖的示例代碼

    本文主要介紹了如何使用Python繪制直方圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • python與c語言的語法有哪些不一樣的

    python與c語言的語法有哪些不一樣的

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python與c語法區(qū)別的相關(guān)內(nèi)容,有興趣的朋友們可以參考下。
    2020-09-09

最新評論

璧山县| 察雅县| 呼玛县| 盱眙县| 石首市| 汾阳市| 阳曲县| 象山县| 武汉市| 拜城县| 从化市| 东港市| 清流县| 正阳县| 屯昌县| 平邑县| 怀仁县| 定陶县| 卫辉市| 宜丰县| 化州市| 萨迦县| 广宗县| 孟村| 桂东县| 铜川市| 东阿县| 博爱县| 天等县| 桑植县| 石狮市| 乌海市| 金平| 维西| 阜新| 保康县| 新民市| 江达县| 东山县| 北京市| 都江堰市|