python序列特性 Python 序列的高階特性

2021-10-11 20:30:23 字數 1628 閱讀 7147

一.切片

字串、列表、元祖可以切片,字典和集合不能切片

二. 迭代

1.任何可以迭代的物件都可以用for迴圈遍歷;

2.字典的迭代:預設是通過key進行迭代的;

集合:字典:

3.字典的列舉:列舉只能返回返回兩個值,乙個是索引下標,乙個是迭代的元素;

4.for 迴圈裡,同時引用了兩個變數,在 python 裡是很常見的;

如果要顯示[(1,2),(2,3),(3,4)]怎麼實現迭代顯示?

5.怎麼去判斷是否可迭代

isinstance("abc",iterable)

三.列表生成式

列表生成式,其實就是生成列表的一種方式,是python內建的;

1.簡單的列表生成式

[ i*i for i in range(10) ]        返回1-10平方的乙個列表;

[ fun(i) for i in l]                  對列表的每個元素執行某個函式操作;

對1-10的數做2n+1的變化

100以內偶數的平方

2.for...if的巢狀

[ i*i for i in range(1,10) if i%2==0]     返回1-10之間所有的偶數

[ i for i in range(1,10) if isprime(i)]      返回1-10之間所有的質數,判斷質數的函式是自定義的;

3.for...for...的巢狀

[ i+j for i in "abc" for j in "123"]    # 返回"abc"和"123"的所有組合;、

4.for...for...的巢狀

轉化為大寫字母

判斷是否字串,如果是,執行轉為大寫

isinstance('a',str) 判斷a是否字串

四.生成器

1.生成器的定義

在迴圈的過程中不斷推算出後續的元素呢?這樣就不必建立完整的 list,從而節省大量的空間。在 python 中,這種一邊迴圈一邊計算的機制,稱為生成器(generator)

-  列表生成式可以直接建立乙個列表,但列表容量受記憶體的限制;

- 在python中一邊迴圈一邊計算的機制,稱為生成器(generator);就是你需要多少,它就生成多少;2.為什麼需要生成器

通過列表生成式,我們可以直接建立乙個列表,受到記憶體限制,列表容量肯定是有限的;

建立乙個包含 100 萬個元素的列表,占用很大的儲存空間;

3.建立生成器的方法和檢視生成器元素的方式:

(1)將列表生成式的改為();

使用生成器的next方法;(不常用)

(2)在定義的函式中加入yield關鍵字;

生成器是可迭代的物件,直接通過for迴圈檢視;

fib 函式定義了斐波拉契數列的推算規則,可以從第乙個元素開始,推算出後續任意的元素,邏輯非常類似 generator。要把 fib 函式變成 generator,只需要把print b 改為 yield b 就可以.

函式順序執行,遇return語句或最後一行函式語句就返回。

generator函式在每次呼叫next() 的時候執行,遇到 yield 語句返回,再次執行時從上次返回的yield 語句處繼續執行。

4.生成器應用:生產者消費者模型

例:

pytho序列,字串,元組 學習筆記

python string.zfill 方法 函式 墊零左側的字串,以填補寬度。python 序列操作 seq ind 獲得下標為 ind 的元素 seq ind1 ind2 獲得下標從 ind1 到 ind2 間的元素集合 seq expr 序列重複 expr 次 seq1 seq2 連線序列 s...

劍指offer 翻轉單詞順序序列 Python

牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....

Python學習筆記 1 1 2 認識Python

一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...