Python3(高階特性)

2021-07-22 14:17:42 字數 1468 閱讀 6661

1.例題答案:小寫化含有數字的list

l2 = [s.lower() for s in l1 if isinstance(s,str) == true]

[l2.insert(key,value) for key,value in enumerate(l1) if isinstance(value,int) == true ]

>>>l2注意

enumerate() 將list轉化為 索引-元素 對,然後可以使用類似於dict的方法讀取下標和元素。

isintance()  判斷字元str,判斷數字int \ float 

dict  索引-元素 對  的讀取要使用dict.items()

list  指定位置新增字元:list.insert(下標,元素)

格式如下,

[x*x for x in range(1,11) if x%2 == 0]
x*x是f(x),x是自變數,if後的是條件,range(1,11)是定義域,結果是值域

2.for迴圈可以是下標,也可以是物件。和c++不同。

3.切片的格式

list[::2]  每兩個取一

list[::]  賦值所有元素

list[1:10]  取第1到10的元素

list / tuple / 字串  都可切片

4.例題答案:楊輝三角(沒把握)

# -*- coding: utf-8 -*-

def ********(l = ):

l.insert(0,0)

length = len(l) - 1

l1 = list(range(length))

for i in range(length):

l1[i] = l[i] + l[i+1]

yield l1

呼叫過程:

python 3.5.2 (v3.5.2:4def2a2901a5, jun 25 2016, 22:18:55) [msc v.1900 64 bit (amd64)] on win32

>>>

*************************= restart: d:\********.py *************************=

>>> next(********([1]))

[1, 1]

>>> next(********([1,1]))

[1, 2, 1]

>>> next(********([1,2,1]))

[1, 3, 3, 1]

>>> next(********([1,3,3,1]))

[1, 4, 6, 4, 1]

>>> next(********([1, 4, 6, 4, 1]))

[1, 5, 10, 10, 5, 1]

>>>

Python3 高階特性

可迭代物件 集合資料型別 list tuple dict set str generator,包括生成器和帶yield的generator function 可以採用collections模組的iterable型別判斷是否是可迭代物件 from collections import iterable...

Python3 基礎 高階特性 迭代器

凡是可作用於for迴圈的物件都是iterable型別 凡是可作用於next 函式的物件都是iterator型別,它們表示乙個惰性計算的序列 集合資料型別如list dict str等是iterable但不是iterator,不過可以通過iter 函式獲得乙個iterator物件。python的for...

Python3 基礎 高階特性 切片和迭代

定義乙個list l michael sarah tracy bob jack 對l進行切片 l 0 3 取索引 0 1 2的內容 或者簡寫 l 3 michael sarah tracy 倒數切片 l 2 bob jack 記住倒數第乙個元素的索引是 1 l 2 1 bob 注意結果取的是 2位置...