07 python學習筆記 列表生成式

2021-08-02 02:50:03 字數 1753 閱讀 7237

2017.6.4

參考資料

列表生成式-廖雪峰的官方**

可以使用list comprehensions來建立list,它是python內建的,非常簡單,非常強大。

要生成list[1,2,3,4,5,6],使用list(range(1,7))

>>> list(range(1,7))

[1, 2, 3, 4, 5, 6]

要生成[1x1, 2x2, 3x3, …, 10x10],怎麼做?

當我們使用迴圈的時候

>>> l=

>>> for x in list(range(1,11)):

...>>>

>>> l

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

當我們使用列表生成式時

>>> [x*x for x in list(range(1,10))]

[1, 4, 9, 16, 25, 36, 49, 64, 81]

for迴圈後面還可以加上if判斷,這樣我們就可以篩選出符合自己條件的數字,如果我們想篩選出偶數的平方

>>> [x*x for x in list(range(1,10)) if x%2==0]

[4, 16, 36, 64]

>>> [x+y for x in

'123'

for y in

'abc']

['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']

這裡在做的時候遇到乙個小問題

>>> dict=

>>> [k + '=' + v for k,v in dict.items()]

traceback (most recent call last):

file "", line

1, in

file "", line

1, in

typeerror: can't convert 'int' object to str implicitly

value不能是整形

更改value成string型別,重新做

>>> dict=

>>> [k + '=' + v for k,v in dict.items()]

['b=b', 'c=c', 'a=a']

把乙個list中所有的字串變成小寫:

>>> [s.lower() for s in l]

但是,當list中既包含字串,又包含整數,由於非字串型別沒有lower()方法,所以列表生成式會報錯

>>> [s.lower() for s in l]

traceback (most recent call last):

file "", line

1, in

file "", line

1, in

attributeerror: 'int' object has no attribute 'lower'

下面,修改列表生成式,通過新增if語句保證列表生成式能正確地執行,提示,內建的isinstance函式可以判斷乙個變數是不是字串:

>>> [s.lower() for s in l if isinstance(s,str)==true]

學習筆記 07 python入門 模組

立即學習 1 安裝模組 1,cmd下 2,pip install 2 解除安裝模組 1,cmd下 2,pip uninstall 3 模組 函式 程式的集合體 類似api概念 有系統已存在的,也可以自定義自己的模組 4 匯出模組 download as 模組名.py 5 匯入模組 1.import ...

07 Python小節案例

採集乙個人的身高,體重,年齡和性別 告訴ta,自己的體脂率是否在正常範圍之內 1.知識考察點 注釋 輸入輸出 變數使用 變數的命名規範 運算子的使用 資料型別轉換 2.體脂率計算公式 bmi 體重 kg 身高 身高 公尺 體脂率 1.2 bmi 0.23 年齡 5.4 10.8 性別 男 1 女 0...

07 Python函式基礎

1.函式簡介 2.函式引數 3.函式作用域 4.遞迴函式 5.高階函式1.函式簡介 1.1 函式分類 語法 deffunname parm1,parm2.expresssions 2.函式引數 2.1 形參與實參 2.2 引數傳遞方式 def f1 name,age print name name,...