python學習之 dictionary 、list、tuple操作


python 內置類型數據 有dictionary(字典)、list(列表)和tuple(元組)

一、Dictionary

Dictionary 是 Python 的內置數據類型之一,它定義了鍵和值之間一對一的關系。

>>> d = {"server":"mpilgrim", "datab ase":"master"} (1)
>>> d
{'server': 'mpilgrim', 'database': 'master'}
>>> d["server"]                              (2)
'mpilgrim'
>>> d["database" ]                             (3)
'master'
>>> d["mpilgrim"]                             (4)
Traceback (innermost last) :
File "<i nteract ive input>", line 1, in ?
KeyError: mpilgrim

上面可以看出dictionary 的屬性。他有一個“key”值, 也就是像“server”“database”一樣的,指向一定的內容。

修改:

>>> d
{'server': 'mpilgrim', 'database': 'master'}
>>> d["database" ] = "pubs"  (1)
>>> d
{'server': 'mpilgrim', 'database': 'pubs' }
>>> d["uid"] = "sa"       (2)
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'datab ase': 'pubs'}

可以看到,修改“key”值,就修改相應的內容

刪除:

>>> del d[42] 
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'datab ase': 'mast er', 'retrycoun t': 3}
>>> d.clear( ) 
>>> d
{}

刪除是del, 刪除中的一個獨立的元素。 如果直接是 d.clear, 則直接清空。

 

二、list

>>> li = ["a", "b", "mp ilgrim", "z", "example"] 
>>> li
['a', 'b', 'mpilgrim', 'z', ' example']
>>> li[0]                                
'a'
>>> li[4]                               
'exampl e'

和dictionary(字典)類似, list(列表)直接是存儲元素。沒有“key”值

負的 list索引

>>> li
['a', 'b', 'mpilgrim', 'z', 'examp le']
>>> li[-1] 
'exampl e'
>>> li[-3]
'mpilgrim'

可以看到“-1”指向的是最后一個元素。而 倒敘排列。

分片:

>>> li
['a', 'b', 'mpilgrim', 'z', ' example']
>>> li[1:3]   
['b', 'mpilgrim']
>>> li[1:-1]
['b', 'mpilgrim', 'z']
>>> li[0:3]  
['a', 'b', 'mpilgrim']

相當於是設定一個段,然后把這段數據都打印出來。

增加、擴展、追加

>>> li
['a', 'b', 'mpilgrim', 'z', ' example']
>>> li.append("new")             
>>> li
['a', 'b', 'mpilgrim', 'z', ' example', 'new']
>>> li.insert(2, "new")        
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'e xample', 'new']
>>> li.extend(["two" , "elements"]) 
>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'e xample', 'new', 'two', ' elements']

增加:append增加到最后,insert 是插入到相應的位置后面, extend是擴展到最后。

其中append 和extend的效果是不一樣的。 增加是增加一個元素,后面的增加都在這個元素里面,相當於新掛了一個list1 到li下面。

而extend 是增加了一個元素。所以是擴展了list

搜索:

搜索和dictionary類似。

>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'e xample', 'new', 'two', ' elements']
>>> li.index("exampl e") (1)
5
>>> li.index("new")    (2)
2

刪除:

>>> li
['a', 'b', 'new', 'mpilgrim', 'z', 'examp le', 'new', 'two', 'e lements']
>>> li.remove("z")   
>>> li
['a', 'b', 'new', 'mpilgrim', 'exampl e', 'new', 'two', 'e lements']
>>> li.remove("new") 
>>> li
['a', 'b', 'mpilgrim', 'examp le', 'new', 'two', 'e lements']
>>> li.remove("c")    
Traceback (innermost last) :
File "<i nteract ive input>", line 1, in ?
ValueError: list.remove(x): x not in list
>>> li.pop( )        
'elements'
>>> li
['a', 'b', 'mpilgrim', 'examp le', 'new', 'two']
>>> li.pop( 2 )

'mpilgrim'

刪除可以用 remover 和 pop, remover刪除相應的元素, 而pop是把相應的元素拿出來,並返回改元素的值。 

list運算符:

>>> li = ['a', 'b', 'mpilgrim']
>>> li =li + ['example', 'new']
>>> li
['a', 'b', 'mpilgrim', 'example', 'new']
>>> li += ['two']              
>>> li
['a', 'b', 'mpilgrim', 'examp le', 'new', 'two']

  >>> li = [1, 2] * 3 (3)
  >>> li
  [1, 2, 1, 2, 1, 2]

* 運算符可以作為一個重復器作用於 list。li = [1, 2] *3 等同於 li = [1, 2] + [1,2] + [1, 2],即將三個 list 連接成一個。

 


三、 tuple(元組)

Tuple 是不可變的 list。一旦創建了一個 tuple,就不能以任何方式改變它

>>> t =("a", "b", "mpilgrim", "z", "example")
>>> t
('a', 'b', 'mpilgrim', 'z', 'e xample')
>>> t[0]                               
'a'
>>> t[-1]                              
'exampl e'
>>> t[1:3]                             
('b', 'mpilgrim')

tuple是特殊的list。。。tuple只能定義,不能添加、修改、刪除。可以測試元素是否在里面。

>>> t
('a', 'b', 'mpilgrim', 'z', 'e xample')
>>> t.app end("new")   
Traceback (innermost last) :
File "<i nteract ive input>", line 1, in ?
AttributeError: 'tuple' object hasnoattribute 'append'
>>> t.remove("z")    
Traceback (innermost last) :
File "<i nteract ive input>", line 1, in ?
AttributeError: 'tuple' object hasnoattribute 'remove'
>>> t.index("example")
Traceback (innermost last) :
File "<i nteract ive input>", line 1, in ?
AttributeError: 'tuple' object hasnoattribute 'index'
>>> "z"i nt         
True

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM