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

歡迎訪問 生活随笔!

生活随笔

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

python

python初心记录二

發布時間:2023/12/2 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python初心记录二 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

切片

L =[1,2,3,4,5,6,7,8,9,0] L[0:3] L[-3]

迭代

如果給定一個list或tuple,我們可以通過for循環來遍歷這個list或tuple,這種遍歷我們稱為迭代(Iteration)。

因為dict的存儲不是按照list的方式順序排列,所以,迭代出的結果順序很可能不一樣。

默認情況下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同時迭代key和value,可以用for k, v in d.items()。

列表生成式

列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。

但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循環:

>>> L = [] >>> for x in range(1, 11): ... L.append(x * x) ... >>> L [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

但是循環太繁瑣,而列表生成式則可以用一行語句代替循環生成上面的list:

>>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

寫列表生成式時,把要生成的元素x * x放到前面,后面跟for循環,就可以把list創建出來,十分有用,多寫幾次,很快就可以熟悉這種語法。

for循環后面還可以加上if判斷,這樣我們就可以篩選出僅偶數的平方:

>>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100]

生成器

Python中,這種一邊循環一邊計算的機制,稱為生成器:generator。

要創建一個generator,有很多種方法。第一種方法很簡單,只要把一個列表生成式的[]改成(),就創建了一個generator:

>>> L = [x * x for x in range(10)] >>> L [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> g = (x * x for x in range(10)) >>> g <generator object <genexpr> at 0x1022ef630>

創建L和g的區別僅在于最外層的[]和(),L是一個list,而g是一個generator。

我們可以直接打印出list的每一個元素,但我們怎么打印出generator的每一個元素呢?

如果要一個一個打印出來,可以通過next()函數獲得generator的下一個返回。

generator是非常強大的工具,在Python中,可以簡單地把列表生成式改成generator,也可以通過函數實現復雜邏輯的generator。

要理解generator的工作原理,它是在for循環的過程中不斷計算出下一個元素,并在適當的條件結束for循環。對于函數改成的generator來說,遇到return語句或者執行到函數體最后一行語句,就是結束generator的指令,for循環隨之結束。

請注意區分普通函數和generator函數,普通函數調用直接返回結果:

>>> r = abs(6) >>> r 6

generator函數的“調用”實際返回一個generator對象:

>>> g = fib(6) >>> g <generator object fib at 0x1022ef948>


迭代器

可以直接作用于for循環的數據類型有以下幾種:

一類是集合數據類型,如list、tuple、dict、set、str等;

一類是generator,包括生成器和帶yield的generator function。

這些可以直接作用于for循環的對象統稱為可迭代對象:Iterable。

可以使用isinstance()判斷一個對象是否是Iterable對象。

凡是可作用于for循環的對象都是Iterable類型;

凡是可作用于next()函數的對象都是Iterator類型,它們表示一個惰性計算的序列;

集合數據類型如list、dict、str等是Iterable但不是Iterator,不過可以通過iter()函數獲得一個Iterator對象。

Python的for循環本質上就是通過不斷調用next()函數實現的,例如:

for x in [1, 2, 3, 4, 5]: pass

實際上完全等價于:

# 首先獲得Iterator對象: it = iter([1, 2, 3, 4, 5]) # 循環: while True: try: # 獲得下一個值: x = next(it) except StopIteration: # 遇到StopIteration就退出循環 break

函數式編程

函數是Python內建支持的一種封裝,我們通過把大段代碼拆成函數,通過一層一層的函數調用,就可以把復雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程序設計。函數就是面向過程的程序設計的基本單元。

高階函數

變量可以指向函數

函數名也是變量

轉載于:https://www.cnblogs.com/benu/p/6413027.html

總結

以上是生活随笔為你收集整理的python初心记录二的全部內容,希望文章能夠幫你解決所遇到的問題。

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