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

 

 

 

 

 

 

 

 

posted on 2014-05-26 15:29  hcu5555  阅读(3939)  评论(1编辑  收藏  举报