小李飛刀:飛呀飛呀python的驕傲放縱

小小嘮叨幾句

這幾天都沒有更新,不表明我沒有學習吖!
這兩天都在忙着半夜,終於有了本身的小窩,一直住家裏,忽然搬出來心情還滿奇特的。
雖然還在一個城市裏,可是感受有了更多的本身的時間。
好比如今是晚上十點,在家的話可能還有不少吵吵嚷嚷的聲音(家裏人口比較多),如今就本身安靜的敲敲字學習什麼的。
恩,仍是要好好學習,記念下搬出來後的第一次學習!
平安夜快樂!app

開始認真學習!

先好好整理下這幾天學習的成果,這幾天在手機上持續看的教程,其實看的也很少啦,那就當溫故而知新啦~
上一回合看完了函數,這幾天認真看了下Python的高級特性函數

切片

取list或者tuple裏面的部分值是很常見的操做。
可是有土辦法也有聰明的辦法。
土辦法就是我挨個去寫index的值唄。學習

print(list[0],list[1],list[2])

聰明一點,讓咱們來用循環。測試

r = []
n = 3
for i in range(n):
    r.append(L[i])

循環其實也很麻煩,因此Python提供了Slice切片操做符。spa

L[0:3] #這樣就完成了前三項的選取

index索引有不少優秀的用法3d

  • 當第一個索引爲0的時候,就能夠簡略不寫
L[:3]
  • 支持倒數切片,注意,倒數第一個元素的索引是-1
L[-2:]
  • 什麼都不寫的時候,顯示整個list
L[:]
  • tuple也是list,因此也支持切片操做,操做結果爲tuple,即不可變
  • 字符串也能夠看作list,支持切片操做,操做結果爲字符串
  • 本身作了一點無聊的小測試

clipboard.png

clipboard.png

clipboard.png

迭代

若是給定一個list或tuple,咱們能夠經過for循環來遍歷這個list或tuple,這種遍歷咱們稱爲迭代(Iteration)。

其實剛開始寫Python的時候很是不習慣,由於以前經常使用的C++,PHP,JS都是用下標來表示數據的位置,而後完成迭代。
因此更高級的抽象化是須要逐步適應的。code

只要是可迭代對象,不管有無下標,均可以迭代,好比dict就能夠迭代。
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
...     print(key)
...
a
c
b

只要是可迭代的朋友,for就能生效,emmm,可是首先,咱們要確認這個朋友,它真的能夠迭代嗎?對象

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整數是否可迭代,這個朋友沒法迭代
False

而後對於下標循環,也是有一套解決方案的。blog

Python內置的enumerate函數能夠把一個list變成索引-元素對,這樣就能夠在for循環中同時迭代索引和元素自己。
>>> for i, value in enumerate(['A', 'B', 'C']):
...     print(i, value)
...
0 A
1 B
2 C

for循環裏,同時引用兩個變量,在Python裏是很常見的教程

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
...     print(x, y)
...
1 1
2 4
3 9

最後,作個做業

clipboard.png
困到真的要起飛啦,明天再繼續咯~
恩,Python真有意思~
但願2019年能夠順利過上寫Python爲主的生活。

PS:最近已經開始刷leetcode啦,受小夥伴感染,後續也會開始寫習題本啦~

相關文章
相關標籤/搜索