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

 

 

 

 

 

 

 

 

你可能感兴趣的:(python)