python學習(一)

python數據類型

整數、浮點數(1.23x10^9就是1.23e9)、字符串、布爾值(True、False)、空值(None)

注釋

用#表示

raw字符串

在字符串前面加個前綴 r ,表示這是一個 raw 字符串,里面的字符就不需要轉義了

r'''python's 
best 
language'''

字符串連接用+連接或者用().join() 或者逗號,來連接

list類型

L.append('item')    append()總是把新的元素添加到 list 的尾部
L.insert(2,'item')  insert()方法,它接受兩個參數,第一個參數是索引號,第二個參數是待添加的新元素
L.pop()    pop()方法總是刪掉list的最后一個元素,并且它還返回這個元素
L.pop(4)   pop()按索引刪除
替換元素的話直接賦值即可

tuple類型

創(chuàng)建tuple和創(chuàng)建list唯一不同之處是用( )替代了[ ]

t = ('Adam', 'Lisa', 'Bart')
t[-1]   利用索引訪問數據,但是不能賦值

單元素 tuple 要多加一個逗號“,”,這樣就避免和括號歧義如:t = (1,)

dict類型

花括號 {} 表示這是一個dict,內容按照 key: value形式
d[key] 的形式來查找對應的 value
判斷key是否存在d.get(key)來判斷,沒有則返回None

d.values()獲取所有value的list
d.itervalues()方法和values()方法迭代效果完全一樣

那這兩個方法有何不同之處呢?

  1. values() 方法實際上把一個 dict 轉換成了包含 value 的list。
  2. 但是 itervalues() 方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節(jié)省了生成 list 所需的內存。
  3. 打印 itervalues() 發(fā)現(xiàn)它返回一個 <dictionary-valueiterator> 對象,這說明在Python中,for 循環(huán)可作用的迭代對象遠不止 list,tuple,str,unicode,dict等,任何可迭代對象都可以作用于for循環(huán),而內部如何迭代我們通常并不用關心。

d.items()方法把dict對象轉換成了包含tuple的list

>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> print d.items()
[('Lisa', 85), ('Adam', 95), ('Bart', 59)]
>>> for key, value in d.items():
...     print key, ':', value
... 
Lisa : 85
Adam : 95
Bart : 59

和 values() 有一個 itervalues() 類似, items() 也有一個對應的 iteritems(),iteritems() 不把dict轉換成list,而是在迭代過程中不斷給出 tuple,所以, iteritems() 不占用額外的內存

set類型

dict的作用是建立一組 key 和一組 value 的映射關系,dict的key是不能重復的。
set 持有一系列元素,這一點和 list 很像,但是set的元素沒有重復,而且是無序的,這點和 dict 的 key很像。
創(chuàng)建 set 的方式是調用 set() 并傳入一個 list,list的元素將作為set的元素

s = set(['A', 'B', 'C'])
'item' in s   返回true或者false
s.add('D')     一是把新的元素添加到set中
s.remove('D')  二是把已有元素從set中刪除

切片

L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素。
>>> L[:3]
['Adam', 'Lisa', 'Bart']
也可以從索引1開始,取出2個元素出來:
>>> L[1:3]
['Lisa', 'Bart']
只用一個 : ,表示從頭到尾:
>>> L[:]
['Adam', 'Lisa', 'Bart', 'Paul']
L[:]實際上復制出了一個新list。
>>> L[::2]
['Adam', 'Bart']
第三個參數表示每N個取一個,上面的 L[::2] 會每兩個元素取出一個來,也就是隔一個取一個。

倒序切片
倒數第一個元素為L[-1],倒序切片包含起始索引,不包含結束索引

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> L[-2:]
['Bart', 'Paul']

>>> L[:-2]
['Adam', 'Lisa']

>>> L[-3:-1]
['Lisa', 'Bart']

>>> L[-4:-1:2]
['Adam', 'Bart']

迭代

python中,迭代永遠是取出元素本身,而非元素的索引
對于有序集合,元素確實有索引,有時候想拿到索引
enumerate()函數
['Adam', 'Lisa', 'Bart', 'Paul']
變成了類似:
[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]
enumerate() 函數自動把每個元素變成 (index, element) 這樣的tuple,再迭代,就同時獲得了索引和元素本身。

zip()函數可以把兩個 list 變成一個 list:

>>> zip([10, 20, 30], ['A', 'B', 'C'])
[(10, 'A'), (20, 'B'), (30, 'C')]

isinstance(x, str) 可以判斷變量 x 是否是字符串
匿名函數lambda x: x * x實際上就是:

def f(x):
    return x * x

關鍵字lambda表示匿名函數,冒號前面的x表示函數參數。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 最近在慕課網學習廖雪峰老師的Python進階課程,做筆記總結一下重點。 基本變量及其類型 變量 在Python中,...
    victorsungo閱讀 1,943評論 0 5
  • 一、python 變量和數據類型 1.整數 Python可以處理任意大小的整數,當然包括負整數,在Python程序...
    績重KF閱讀 2,017評論 0 1
  • 在抨擊別人主觀臆斷的時候,你是否反思過自己是否主觀臆斷?
    草房介二閱讀 364評論 0 0
  • 又到了一年高考的時候,家長學生都十分緊張。有人說是千軍萬馬過獨木橋,有人說這是影響一輩子的大事。作為一個接受...
    白鹿呦呦閱讀 413評論 0 1

友情鏈接更多精彩內容