美文网首页Python学习笔记
Python学习笔记03-容器

Python学习笔记03-容器

作者: 明阳似海 | 来源:发表于2018-10-02 20:44 被阅读0次

    List

    list是一种有序的集合,可以随时添加和删除其中的元素。比如:

    >>>classmates = ['Michael' , 'Bob' , 'Tracy']
    >>>classmates
    ['Michael','Bob','Tracy']
    

    变量classmates就是一个list,用len()函数可以获得list元素的个数,用索引来访问list中的每一个位置的元素,索引从0开始:

    >>>len(classmates)
    3
    >>>classmates[0]
    'Michael'
    

    如果需要从后向前访问,可以使用-x做索引,-1代表最后一个元素,-2代表倒数第二个元素,以此类推,-3代表倒数第三个元素,索引访问时注意不要越界。

    >>>classmates[-1]
    'Tracy'
    >>>classmates[-2]
    'Bob'
    

    向list末尾追加元素使用append()方法,list向指定位置插入元素使用insert(),删除末尾元素使用pop()方法,删除指定位置元素使用pop(i)方法,list可以直接通过索引访问并修改元素,如下:

    >>>classmates.append('Adam')
    >>>classmates
    ['Michael', 'Bob', 'Tracy', 'Adam']
    >>>classmates.insert(1,'Jack')
    >>>classmates
    ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
    >>>classmates.pop()
    'Adam'
    >>>classmates
    ['Michael', 'Jack', 'Bob', 'Tracy']
    >>>classmates.pop(1)
    'Jack'
    >>>classmates
    ['Michael', 'Bob', 'Tracy']
    >>>classmates[1] = 'Sarah'
    >>>classmates
    ['Michael', 'Sarah', 'Tracy']
    

    list里面的元素数据类型也可以不同,比如:

    >>> L = ['Apple',123,True]
    #list的元素也可以是另一个list
    >>>s = ['python','java',['asp','php'],'sheme']
    >>>len(s)
    4
    

    要获取s中的'php'元素,可以使用s[2][1],这里的s可以看成是一个二维数组,类似的也有三维、四维...数组。

    >>>s[2][1]
    'php'
    #list中可以不含任何元素
    >>>L = []
    >>>len(L)
    0
    

    tuple

    tuple和list非常类似,但是tuple一旦初始化就不能修改,它没有append()insert()这样的方法。其获取元素的方法与list一样。

    >>>classmates = ('Michael','Bob','Tracy')
    >>>classmates[0]
    'Michael'
    >>>classmates[-1]
    'Tracy'
    

    tuple只有一个元素是不可以写成t = (1),因为其与数学公式中的括号产生了歧义,要使用t = (1,)定义tuple只有一个元素。
    最后来看一下“可变的”tuple

    >>>t = ('a','b',['A','B'])
    >>>t[2][0] = 'X'
    >>>t[2][1] = 'Y'
    >>>t
    ('a','b',['X','Y'])
    

    t中有个list元素,此list中的元素是可变的,不要与tuple不可变属性搞混噢。

    dict

    dict全称dictionary,在其他语言中也称为map,使用健-值(key-value)存储,具有极快的查找速度。
    比如一个考试成绩记录表上面有“名字”和“成绩”两列,为了通过姓名快速查找到成绩,我们可以按如下方式定义dict:

    >>>d = {'Michael':95,'Bob':75,'Tracy':85}
    >>>d['Michael']
    95
    

    dict中可以直接通过key对value进行访问、修改或插入(当dict中没有此key时则插入)如下:

    >>>d['Michael'] #访问d中Michael的Value值
    95
    >>>d['Jack']#d中不包含Jack,此语句执行失败
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'Jack'
    >>>'Jack' in d#通过in来判断key是否存在
    False
    #向d中插入或修改已有value值
    d['Jack'] = 90 #d中没有Jack,则将Jack - 90 插入到d中
    d['Jack'] = 80 #d中含有Jack,则将原来的90改为了80
    

    通过dict提供的get()方法也可以判断key是否存在,若存在则返回value,若不存在则返回None或指定值,如下:

    >>>d.get('Thomas')#什么也没返回,即返回None
    >>>d.get('Thomas',-1)
    -1
    

    要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

    >>>d.pop('Bob')
    75
    >>>d
    {'Micheal':95,'Tracy':85,'Jack':80}
    

    注:dict的key必须是不可变对象

    set

    set是一组key的集合,但不存储value,由于key不能重复,所以在set不存在两个或多个相同的key。
    创建set需要提供一个list作为输入集合,如下:

    >>>s = set([1,2,3])
    >>>s
    {1,2,3}
    >>>s = set([1,1,2,2,3,3,3,])#set会自动去重
    >>>s
    {1,2,3}
    

    通过add(key)方法向set中添加元素,多次add同一个元素与只add一次等价,通过remove(key)方法删除元素:

    >>>s.add(4)
    >>>s
    {1,2,3,4}
    >>>s.add(4)
    >>>s
    {1,2,3,4}
    >>>s.remove(4)
    >>>s
    {1,2,3}
    

    set可以翻译成集合,与数学中的集合类似,可以做交集和并集:

    >>>s1 = {1,2,3}
    >>>s2 = {2,3,4}
    >>>s1&s2
    {2,3}
    >>>s1|s2
    {1,2,3,4}
    

    学习资料源自廖雪峰官方网站

    相关文章

      网友评论

        本文标题:Python学习笔记03-容器

        本文链接:https://www.haomeiwen.com/subject/bewnoftx.html