天天看點

<Python内置對象類型>

核心數字類型:

數字:int,long,float,complex,bool

字元:str,unicode

清單:list

字典:dict

元組:tuple

檔案:file

其他類型:集合(set),frozenset,類型,None

其他檔案類工具:pipes,fifos,sockets.

類型轉換:

str(),repr()或format():将非字元型資料轉換成字元;

int():轉換為整數

float():轉換為浮點數

list(x):可以把字元串x轉換為清單,

tuple(x):将字元串x轉換為元組;

set(x):将字元串轉換為集合.

dict(d):建立字典,其d必須是[(key,value),(key,value)]的元組序列:

chr(x):将整數轉為字元.

ord(x):将字元轉換為整數值.

hex(x):将整數轉換為16進制字元.

bin(x):将整數轉換為2進制字元.

數字類型:

Python的數字字面量:布爾型,整數,浮點數,複數

True:1

False:0

序列類型:

字元類型:

字元串字面量:把文本放入單引号、雙引号或三引号中:

如果要使用unicode編碼,則在字元之前使用字元u進行表示,如u"xxx"

适用于所有序列的操作和方法:

s[i]:索引運算符

s[i:j]:為切片運算符,s[i:j:stride]為擴充切片運算符

min(s)和max(s)隻适用于能夠對元素排序的序列

sum(s)隻适用于數字序列

all(s)檢查s中的所有項是否為True

any(s)檢查s中的任意項是否為False

1

2

3

4

5

<code>&gt;&gt;&gt; </code><code>str</code><code>=</code><code>"9876544531"</code>

<code>&gt;&gt;&gt; </code><code>min</code><code>(</code><code>str</code><code>)</code>

<code>'1'</code>

<code>&gt;&gt;&gt; </code><code>max</code><code>(</code><code>str</code><code>)</code>

<code>'9'</code>

用于字元串的操作:

Python2 提供兩種字元串對象類型:

位元組字元串:位元組序列

unicode字元串:Unicode字元序列

Python可以使用32bit整數儲存Unicode字元,但此為可選特性.

6

7

<code>&gt;&gt;&gt; str2</code><code>=</code><code>"hellow"</code>

<code>&gt;&gt;&gt; str2.islower()</code>

<code>True</code>

<code>&gt;&gt;&gt; str2.isupper()</code>

<code>False</code>

<code>&gt;&gt;&gt; str2.upper()</code>

<code>'HELLOW'</code>

capitalize 字元串的首字母大寫s.capitalize()

s.index(sub[,start[,end]]) 找到指定字元串sub首次出現的位置,否則報錯

s.join(t) 使用s作為分隔符連接配接序列t中的字元串

s.lower() 轉換為小寫形式

s.split([sep[,maxsplit]]) 使用sep作為分隔符對一個字元串進行劃分。maxsplit是劃分的最大次數

s.strip 删掉chrs開頭和結尾的空白或字元

s.upper()将一個字元串轉換為大寫形式

replace('old','new') 将所有舊的字元串替換為新的字元串

<code>str</code><code>=</code><code>"hello world"</code>

<code>l2</code><code>=</code><code>list</code><code>(</code><code>str</code><code>)</code>

<code>print</code> <code>l2</code>

<code>str3</code><code>=</code><code>''.join(l2)</code><code>#使用空白作為分隔符将list清單組合起來.</code>

<code>print</code> <code>str3</code>

<code>print</code> <code>str</code><code>.replace(</code><code>'hello'</code><code>,</code><code>'HELLO'</code><code>)</code>

split 以.為分隔符,對字元串進行操作.

<code>str</code><code>=</code><code>"www.baidu.com"</code>

<code>print</code> <code>str</code><code>.split(</code><code>'.'</code><code>)</code>

<code>[</code><code>'www'</code><code>, </code><code>'baidu'</code><code>, </code><code>'com'</code><code>]</code>

s.strip()用來删除s字元串左右兩邊的空白字元的.

<code>str=</code><code>"   hello    "</code>

<code>print str.strip()</code>

<code>hello</code>

清單:

容器類型:

任意對象的有序集合,通過索引通路其中的元素,可變對象,

異構,任意嵌套

支援在原處修改:

修改指定的索引

del() 删除清單中的元素

append() 新增清單中的元素

<code>str=[</code><code>'1'</code><code>,</code><code>'a'</code><code>,</code><code>'b'</code><code>,</code><code>'7'</code><code>]</code>

<code>del(str[1:])</code>

<code>print str</code>

<code>結果:[1]</code>

<code>str.append(</code><code>"hello"</code><code>)</code>

<code>結果:[</code><code>'1'</code><code>, </code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'7'</code><code>, </code><code>'hello'</code><code>]</code>

count() 擷取指定清單中元素出現的次數

<code>print str.count(</code><code>'a'</code><code>)</code>

<code>結果:1</code>

extend() 清單擴充,将原先清單中的元素擴充進來.

<code>l1=[</code><code>'x'</code><code>,</code><code>'y'</code><code>,</code><code>'z'</code><code>]</code>

<code>str.extend(l1)</code>

<code>結果:[</code><code>'1'</code><code>, </code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'7'</code><code>, </code><code>'x'</code><code>, </code><code>'y'</code><code>, </code><code>'z'</code><code>]</code>

append() 新增清單元素元素

<code>str.append(l1)</code>

<code>結果:[</code><code>'1'</code><code>, </code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'7'</code><code>, [</code><code>'x'</code><code>, </code><code>'y'</code><code>, </code><code>'z'</code><code>]]</code>

列印清單中某元素索引的位置.

<code>&gt;&gt;&gt; print str</code>

<code>[</code><code>'1'</code><code>, </code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'7'</code><code>, </code><code>'x'</code><code>, </code><code>'y'</code><code>, </code><code>'z'</code><code>]</code>

<code>&gt;&gt;&gt; str.index(</code><code>'a'</code><code>)</code>

<code>1</code>

s.insert 在索引的位置添加新的字元串.

<code>&gt;&gt;&gt; str.insert(1,</code><code>"ccc"</code><code>)</code>

<code>[</code><code>'1'</code><code>, </code><code>'ccc'</code><code>, </code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'7'</code><code>, </code><code>'x'</code><code>, </code><code>'y'</code><code>, </code><code>'z'</code><code>]</code>

s.pop彈出某個索引對應的元素,預設為彈出最後一個清單的元素.

彈出以後将傳回這個元素.

<code>&gt;&gt;&gt; str.pop(2)</code>

<code>'a'</code>

<code>&gt;&gt;&gt; str.pop()</code>

<code>'z'</code>

s.remove()删除清單中指定元素的值

<code>&gt;&gt;&gt; str.remove(</code><code>'y'</code><code>)</code>

<code>[</code><code>'1'</code><code>, </code><code>'ccc'</code><code>, </code><code>'b'</code><code>, </code><code>'7'</code><code>, </code><code>'x'</code><code>]</code>

<code>&gt;&gt;&gt; str.remove(</code><code>'b'</code><code>)</code>

<code>[</code><code>'1'</code><code>, </code><code>'ccc'</code><code>, </code><code>'7'</code><code>, </code><code>'x'</code><code>]</code>

s.sort排序,正序;在原處修改,沒人任何傳回.

<code>&gt;&gt;&gt; str.</code><code>sort</code><code>()</code>

<code>[</code><code>'1'</code><code>, </code><code>'7'</code><code>, </code><code>'ccc'</code><code>, </code><code>'x'</code><code>]</code>

s.reserse 逆序,倒序

<code>&gt;&gt;&gt; </code><code>print</code> <code>str</code>

<code>&gt;&gt;&gt; </code><code>str</code><code>.reverse()</code>

<code>[</code><code>'x'</code><code>, </code><code>'ccc'</code><code>, </code><code>'7'</code><code>, </code><code>'1'</code><code>]</code>

l1+l2:合并兩個清單,傳回一個新的清單,不會修改原清單.

<code>&gt;&gt;&gt; l1=[1,2,3]</code>

<code>&gt;&gt;&gt; l2=[7,8,10]</code>

<code>&gt;&gt;&gt; l1+l2</code>

<code>[1, 2, 3, 7, 8, 10]</code>

l1 * N:把l1重複N次,傳回一個新清單.

<code>&gt;&gt;&gt; l1 * 3</code>

<code>[1, 2, 3, 1, 2, 3, 1, 2, 3]</code>

in:成員關系判斷字元

用法:某個元素in 某個容器

<code>&gt;&gt;&gt; 2 </code><code>in</code> <code>l1</code>

<code>&gt;&gt;&gt; 2 </code><code>in</code> <code>l2</code>

not in :判斷某個元素不在某個清單中.

清單解析:[]

深度複制清單中的元素,記憶體中所引用的對象發生變化。

copy.deepcopy()

執行個體:

<code>import</code> <code>copy</code>

<code>l1=[1,2,3]</code>

<code>l2=copy.deepcopy(l1)</code>

<code>print l2</code>

<code>l1.append(4)</code>

<code>print l1</code>

l2等于l1清單中的所有元素.

l2=l1[:]

元組:

表達式符号:()

容器類型

任意對象的有序集合,通過索引通路其中的元素,不可變對象,長度固定.

雖然元組本身不可變,但如果元組内嵌套了可變類型的元素,那麼此類元素的修改不會傳回新元組.

列子:

<code>l1=(1,2,3,[</code><code>'a'</code><code>,</code><code>'b'</code><code>,</code><code>'c'</code><code>])</code>

<code>print l1[3]</code>

<code>l1[3].pop()</code>

字典在其他程式設計語言中又稱作關聯數組或散清單;

通過鍵實作元素存取;無序集合;可變類容器,長度可變,異構,嵌套.

{key:value1,key2:value2}

{}空字典

l1={"x":['a','b','c'],"y":32}

print l1["x"]

結果為:['a', 'b', 'c']

對于字典的引用,需要使用key調用對應的值;

字典也支援切片:

<code>l1={</code><code>"x"</code><code>:[</code><code>'a'</code><code>,</code><code>'b'</code><code>,</code><code>'c'</code><code>],</code><code>"y"</code><code>:32}</code>

<code>print l1[</code><code>"x"</code><code>][1:]</code>

<code>[</code><code>'b'</code><code>, </code><code>'c'</code><code>]</code>

len()傳回字典中元素的個數

print len(l1)

結果為:2

字典支援修改,元素可變:

<code>print </code><code>id</code><code>(l1)</code>

<code>print l1[</code><code>"y"</code><code>]</code>

<code>l1[</code><code>"y"</code><code>] = 504</code>

dicr.copy()複制copy,相當于完全copyl1

<code>l2=l1.copy()</code>

dict.get()擷取指定key的value值.

<code>print l1.get(</code><code>"x"</code><code>)</code>

檢視字典中有沒有x這個key

<code>print l1.has_key(</code><code>"x"</code><code>)</code>

dict.get()和dict[s]差別在于:

dict.get()擷取字典中就算沒有這個值也不會報錯,但是要是dict[]這個值就會直接報錯.

dict.items将字典中的key:value以清單元組的形式拆開.

<code>print l1.items()</code>

<code>結果:[(</code><code>'y'</code><code>, 32), (</code><code>'x'</code><code>, [</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'c'</code><code>])]</code>

變量解包,元組支援解包,字典直接不支援解包.

<code>t1,t2=l1.items()</code>

<code>print t1,t2</code>

<code>[(</code><code>'y'</code><code>, 32), (</code><code>'x'</code><code>, [</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'c'</code><code>])]</code>

<code>(</code><code>'y'</code><code>, 32) (</code><code>'x'</code><code>, [</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'c'</code><code>])</code>

<code>m1,m2={</code><code>'x'</code><code>:1,</code><code>'y'</code><code>:2}</code>

<code>print m1,m2</code>

<code>結果:y x  可以看到字典時無序的,不支援直接解包.</code>

dict.keys()是key組成的清單,dict.values()字典值組成的清單.

<code>l1={</code><code>'x'</code><code>:21,</code><code>'y'</code><code>:5}</code>

<code>print l1.keys()</code>

<code>print l1.values()</code>

dict.update()合并字典

<code>l2={</code><code>'a'</code><code>:21,</code><code>'b'</code><code>:7,</code><code>'x'</code><code>:32}</code>

<code>l1.update(l2)</code>

dict.next()疊代.

<code>i1=l1.iteritems()</code>

<code>print i1.next()</code>

zip函數:快速建構字典的方式

<code>print zip(</code><code>'abcd'</code><code>,</code><code>'123'</code><code>)</code>

<code>print dict(zip(</code><code>'abcd'</code><code>,</code><code>'123'</code><code>))</code>

<code>結果:</code>

<code>[(</code><code>'a'</code><code>, </code><code>'1'</code><code>), (</code><code>'b'</code><code>, </code><code>'2'</code><code>), (</code><code>'c'</code><code>, </code><code>'3'</code><code>)]</code>

<code>{</code><code>'a'</code><code>: </code><code>'1'</code><code>, </code><code>'c'</code><code>: </code><code>'3'</code><code>, </code><code>'b'</code><code>: </code><code>'2'</code><code>}</code>

本文轉自青衫解衣 51CTO部落格,原文連結:http://blog.51cto.com/215687833/1960126