• 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
  • 相关阅读:
    BZOJ_3171_[Tjoi2013]循环格_最小费用最大流
    BZOJ_1150_[CTSC2007]数据备份Backup_堆+贪心
    BZOJ_1576_[Usaco2009 Jan]安全路经Travel&&BZOJ_3694_最短路_树链剖分+线段树
    BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数
    BZOJ_3667_Rabin-Miller算法_Mille_Rabin+Pollard rho
    BZOJ_1584_[Usaco2009 Mar]Cleaning Up 打扫卫生_DP
    BZOJ_1229_[USACO2008 Nov]toy 玩具_三分+贪心
    BZOJ_2160_拉拉队排练_manacher
    [转载]Linux软件包及dpkgapt等方法
    服务器基础认知杂谈及一小点运维相关
  • 原文地址:https://www.cnblogs.com/hcu5555/p/3753193.html
Copyright © 2020-2023  润新知