日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python高级编程知识点_(转)python 高级编程技巧学习笔记

發布時間:2023/12/4 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python高级编程知识点_(转)python 高级编程技巧学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自https://www.jianshu.com/p/104cec085611,部分圖出不來,mark一下,關鍵時候供查看。

第二章 數據結構相關話題

2.1、篩選數據

兩種方式

filter函數:filter(lambda x: x>0, data)

注意:python3 需要把filter的結果轉為list ,也就是list(filter(lambda x: x>0, data))

加條件的遍歷: [ x for x in data if x > 0 ]

如果想轉成集合,就把[]改成{}

2.2、如何為元組的每個元素命名

使用元組的好處:減少存儲開銷

缺點:使用索引訪問元素,降低程序可讀性

解決方案:

1、定義一系列數值常量

NAME, AGE, SEX, EMAIL = range(4)

2、使用標準庫中的collections.namedtuple替代內置tuple

2.3、如何統計序列中出現的頻度

解決方案:使用collections.Counter對象

將序列傳入Counter的構造器,得到Counter對象是元素頻度的字典

Counter.most_common(n)方法得到頻度最高的n個元素的字典

2.4、如何根據字典中值的大小,對字典進行排序

解決方案:使用內置函數sorted

2.5、如何快速找到多個字典的公共鍵

案例:統計每輪比賽都有進球的球員

解決方案:利用集合的交集操作

1、使用字典的viewkeys()方法,得到一個字典keys的集合

2、使用map函數,得到所有字典的keys的集合

3、使用reduce函數,取所有字典的keys的集合的交集

2.6、如何讓字典保持有序,也就是遍歷的時候按插入順序打印

解決方案:使用collections.OrderedDict

以OrderedDict代替內置字典dict,依次將數據存入OrderedDict

2.7、如何實現用戶的歷史記錄功能(最多n條)

解決方案:使用容量為n的隊列容量存儲歷史記錄

使用標準庫collections中的deque,它是一個雙端循環隊列

程序退出前,可以使用pickle將隊列存入文件,再次運行時將其導入。

第三章 迭代器

3.1、如何實現可迭代對象和迭代器對象

可迭代對象需要有iter方法,這個方法返回迭代器對象。

而迭代器對象則要有next()

3.2、如何使用生成器函數實現可迭代對象

yield關鍵字

yield 是一個類似 return 的關鍵字,只是這個函數返回的是個生成器

當你調用這個函數的時候,函數內部的代碼并不立馬執行 ,這個函數只是返回一個生成器對象

當你使用for進行迭代的時候,函數中的代碼才會執行

3.3、 如何進行反向迭代以及如何實現反向迭代

解決方案:

1、使用內置函數reversed()方法

2、實現反向迭代協議的 __reverse 方法,它返回一個反向迭代器

3.5、 如何對迭代器做切片操作

解決方案:使用標準庫中的itertools.islice,它能返回一個迭代對象切片的生成器

3.6、如何在一個for語句中迭代多個可迭代對象

解決方案:

并行:使用內置函數zip,它能將多個可迭代對象合并,每次迭代返回一個元組

串行:使用標準庫中的itertools.chain,它能將多個可迭代對象連接

第四章 字符串處理

4.1、如何拆分含有多種分隔符的字符串

解決方案:

1、連續使用str.split()方法,每次處理一種分隔符

2、使用正則表達式的re.split()方法,一次性拆分字符串

4.2、如何判斷一個字符串是以b開頭或結尾

解決方案:

使用字符串的str.startswith()和endswith()方法。注意:多個匹配時參數使用元組。

4.3、如何調整字符串中文本的格式

解決方案:

使用正則表達式re.sub()方法做字符串替換,利用正則表達式的捕獲組,捕獲每個部分內容,在替換字符串中調整各個捕獲組的順序

4.4、如何將多個小字符串拼接成一個大字符串

解決方案:

方法一:迭代列表,使用‘+’連接字符串

方法二:使用str.join()方法,更加快速的拼接列表的字符串

4.5、如何對字符串進行左中右對齊

解決方案:

1、使用字符串的str.ljust(), str.rjust(), str.center()進行左中右對齊

2、使用format()方法,傳遞類似‘<20’, '^20', '>20'參數

4.6、如何去掉字符串中不需要的字符

解決方案:

1、字符串strip(), lstrip(), rstrip()去掉字符串兩端字符

2、刪除單個固定位置的字符,可以使用切片 + 拼接的方式

3、字符串的replace方法或正則表達式re.sub()刪除任意位置字符

4、字符串translate()方法,可以同時shanchu刪除多種不同字符

第五章 文件處理

5.1、如何讀寫文本文件(py2和py3區別)

字符串的語義發生變化

py2 py3

str ---> bytes

unicode ----> str

解決方案:

py2 寫入文件前對unicode編碼,讀入文件后對二進制解碼

py3 open函數指定‘t’的文本模式,encoding指定編碼格式

5.2、如何處理二進制文件

解決方案:

open函數以二進制模式打開文件,指定mode為‘b’

二進制文件可以用readinto,讀入到提前分配好的buffer中,便于數據處理

解析二進制文件可以用標準庫中的struct模塊的unpack方法

5.3、如何設置文件的緩沖

解決方案:設置open函數的buffering參數

1、全緩沖,buffering設置為大于1的整數n,n為緩沖區大小

2、行緩沖,buffering設置為1,遇到換行符\n就停止緩沖

3、無緩沖,buffering設置為0

5.4、如何將文件映射到內存

解決方案:使用標準庫mmap模塊中的mmap()函數,它需要一個打開的文件描述符作為參數

5.5、如何訪問文件的狀態

解決方案:

1、系統調用,標準庫中os模塊下的三個系統調用stat, fstat, lstat獲取文件狀態

2、快捷調用,標準庫中os.path下一些函數,使用起來更加簡潔(沒有文件 訪問權限的函數)

5.6、如何使用臨時文件?

解決方案:使用標準庫中tempfile下的TemporaryFile, namedTemporaryFile

第六章 數據處理

6.1、如何讀寫CSV數據

解決方案:使用標準庫中的CSV模塊,可以使用其中reader和writer完成CSV讀寫

6.2、如何讀寫json數據

解決方案:使用標準庫中的json模塊,其中loads,dumps函數可以完成json數據的讀寫

6.3、如何讀寫Excel文件

解決方案:使用第三方庫xlrd和xlwt,這兩個庫分別用于Excel讀和寫

總結

以上是生活随笔為你收集整理的python高级编程知识点_(转)python 高级编程技巧学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。