zoukankan      html  css  js  c++  java
  • Python 数组[],元组(),字典{}的异同

    序列

    Python有6中内建的序列,在这里我们重点讨论两种,数组和元组。所有序列都可以做某些特定的操作,大致上常用的是:加,乘,索引,分片以及检查某个元素是否属于序列的成员。
    Python还提供一些内建函数来计算序列长度,找出最大值与最小值。
    注意:所有的序列都是从0开始递增。

    索引

    序列中的元素都是有编号的,且编号是从0开始,从左往右数,最后一个为length-1.
    从右往左数,因为首元素为0,所以最后一个元素应该为-1.
    example:
    我认为索引最值得引人注目的地方就是,字符串字面值能够直接使用索引
    hello[1]
    结果:e

    分片

    索引用来访问单个元素,用分片来访问一定范围内的元素。分片用:隔开。
    所有的分片操作都有两个索引边界number[3:6] 第一个边界包含在内,第二个边界不包含在内。
    分片操作可以设置步长,默认步长为1,number[3:6:2] 与matlab不同的是,python分片的步长为第三个参数。当你是用例如number[:6:2] 或者number[2::2] 以及
    number[::2] 这样省略边界的分片时,默认是从列表的首尾位置开始分片。
    分片也可以用负值,在这里不做介绍。

    序列相加

    两种相同类型的序列是可以相加的,不同类型的不可以相加。
    [1,2,3]+[4,5,6]

    序列相乘

    用一个数字x乘以一个序列生成新的序列,而在新的序列中,原来的序列被重复X次
    example:
    python*5

    None,空列表以及初始化

    在数组(列表)中可以用[]——来表示里面什么都没有。如果想要创建10个这样的占位空间,就可以用[]*10来占位或者[0]*10来占位。
    若要占一个空间,且里面没任何元素,就可以用None来占位
    [None]*10

    成员资格,长度len,最小值min,最大值max

    成员资格用 in 运算符,这个运算符来检验某个条件是否为真,然后返回相应的值:True与False.
    len,max,min,接受的是一个序列

    序列的大儿子,列表(数组)

    数组

    数组也叫列表,用[]来表示,数组中所存的数据是可变的,python 中的数组与matlab中的数组是一样的含义,都是用[]来表示。
    列表这种数据结构适合于将值组织到一个结构中,并且通过编号对其引用。
    数组可变就是说,当一个数组被创建后,是可以被修改的。数组是序列的大儿子,只要是序列所有的功能,数组都完美的继承,并发扬光大。
    数组的各种方法与分片,索引的具体内容,在这里就不详细说明,有时间再说。

    序列的闺女,元组

    元组是用()来存储数据。元组是一种不可变的序列。创建一个元组,只需要输入1,2,3
    1,2,3 或者(1,2,3),空元组的表示方法为()
    注意如果元组里面有元素,结尾一定要加,(3,)
    元组的乘法与普通乘法的比较:

    Out[19]: 126
                 3*(40+2,)
    Out[20]: (42, 42, 42)

    字典,到处乱射的大兄弟

    字典是一种通过名字来引用值得数据结构。是python唯一内建的映射类型。用{}来表示。无特殊的顺序,都存储在一个特定的键(Key)中。键可以是数字,字符串,元组。

    字典的创建

    字典的键与值用:隔开,项与项之间用逗号(,)。空字典就像这样:{}
    注意字典中的键是唯一的,值不唯一。
    可以用dict函数,通过其他映射(比如其他字典)或者(键,值)对的序列建立字典。

    items=[('name','G'),('age',42)]
    d=dict(items)
    d
    Out[23]: {'age': 42, 'name': 'G'}

    dict函数也可以通过关键字参数来创建字典。
    d=dict(name=’G’,age=42)
    d
    Out[25]: {‘age’: 42, ‘name’: ‘G’}
    字典也有很多与序列相似的基本操作,如
    len(d) 返回d中项(键-值对)的数量
    d[k] 返回关联到键k上的值
    d[k]=v 将值v关联到 键k上
    del d[k] 删除键为k的项
    del d['age']
    d
    Out[28]: {'name': 'G'}
    k in d 检查d中是否含有键位k的项
    #字典与数组的异同
    ##键类型:字典的键是可以任意的不可变类型,如浮点型,实型,字符串,或者元祖。
    ##自动添加:字典可以任意的往字典里添加键值对,而不需要使用append方法。
    ##成员资格:表达式 k in d **(d{}是字典类型)**查找的是键,而不是值。如果表达式 k in d **(d[]是数组)**查找的是值。
    example:

    people={‘Alice’:{‘phone’:2341,’addr’:’Foo drive 23’},
    ‘Beth’:{‘phone’:’9102’,’addr’:’Bar street’},
    ‘Cecil’:{‘phone’:’3218’,’addr’:’Baz ave’}}
    labels={‘phone’:’phone number’,’addr’:’address’}
    name=raw_input(‘name:’)
    request=raw_input(‘phone number(p)or address(a)?’)
    if request==’p’:key=’phone’
    if request==’a’:key=’addr’
    if name in people:print”%s’s %s is %s.”
    %(name,labels[key],people[name][key])

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/jpfss/p/9605680.html
Copyright © 2011-2022 走看看