美文网首页
Python数据结构

Python数据结构

作者: viean | 来源:发表于2018-04-27 23:56 被阅读0次

    list

    list为python内置有序集合,可随意添加及删除元素;

    list用 [] 定义;

    mylist = ['aaa', 'bbb', 300, 'ccc']
    #list中数据元素可以为不同类型
    print len(mylist)  #输出mylist长度
    print mylist[0]     #访问mylist第一个元素
    print mylist[-1]     #访问mylist最后一个个元素
    mylist[0] = 'ddd'
    mylist.append('fff')  #mylist在其最后添加元素
    mylist.insert(1, 'ggg');  #在mylist第一个元素后添加元素,其他元素后移
    mylist.pop()   #删除list末尾的元素(最右侧)
    mylist.pop(1) #删除list索引位置为1的元素(第2个)
    mylist = ['aaa', [300, 800], 'ccc'] #mylist中包含另一个list
    print mylist[1][0]    #输出mylist第二个元素的第一个元素
    #切片(Slice)
    mylist = ['aaa', 'bbb', 300, 'ccc']
    newlist = mylist[0:2]    #从索引0开始取,直到索引2为止, 但是不包含索引2  newlist=['aaa', 'bbb']
    #如果第一个索引是0,还可以省略  newlist = mylist[:2]  同上
    newlist = mylist[-2:]   # [300,'ccc']
    
    newrange = range(100)
    nr = newrange[:10:2]  #前10个,每隔2个取一个; -->  [0, 2, 4, 6, 8]
    nr2= newrange[::5]     #所有数,每隔5个取一个
    #[:]原样复制
    
    #字符串'xxx'或Unicode字符串u'xxx'也可以看成是一种list,每个元素就是一个字符
    'ABCDEFG'[:3]
    

    tuple

    python的另一种有序列表,tuple一旦初始化就不能被修改

    tuple用 () 定义;

    mytuple = ('zhangsan', 'lisi', 'wangwu')
    # 定义tuple时就必须确定其元素,因为一旦定义将不能改变其内容;tuple没有append及insert函数,也不能通过[index]更改其值;
    #有1个元素的tuple定义时必须加一个逗号,(为了防止与数学公式小括号歧义)
    t = (1,)
    #一个另类:可变的tuple
    t2 = ('a', 'b', [100, 200])
    t2[2][0] = 500
    # tuple所谓的“不变”是说,tuple的每个元素,指向永远不变
    

    dict

    python内置字典数据结构,key-value存储数据;(其他语言中也称为map)

    dict用 {} 进行定义

    #示例:
    d = {'zhangsan' :  23, 'lisi' : 25, 'wangwu' : 28}
    print d['zhangsan']
    d['zhaoliu'] = 27  #增加dict元素
    #当访问dict中不存在的key时会报错,所以访问时,先判断; 
    if 'lisi' in d:
        print d['lisi']
    #也可以用dict的get方法访问,不存在时,返回None,或者自己指定的value
    d.get('lisi')  #返回25
    d.get('vivi') #返回None
    d.get('vivi', 0) #返回0
    #pop(key)方法删除一个key-value组
    d.pop('zhangsan')
    

    dict内部存放的顺序和key放入的顺序是没有关系的
    dict的key必须是不可变对象

    set

    Python内置集合类;

    创建时需要提供一个list作为输入集合

     s = set([1, 2, 3,1])
    print s  #重复元素会被过滤掉set([1, 2, 3])
    #add(key)增加元素至set
    s.add(4)
    #remove(key)删除元素
    s.remove(4)
    #set集合操作交集、并集
    s1  =  ([1, 2, 3])
    s2 =   ([2, 3, 4])
    s1 & s2  #交集,[2, 3]
    s1 | s2   #并集,[1, 2, 3, 4]
    
    #tuple也可以用切片操作,只是操作的结果仍是tuple
    (0, 1, 2, 3, 4, 5)[:3]   结果: (0,1,2)
    

    总结:

    list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
    dict为python内置字典存储(key-value);
    set为python内置集合;

    相关文章

      网友评论

          本文标题:Python数据结构

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