美文网首页Java 杂谈
跟我一起学Python数据结构之list

跟我一起学Python数据结构之list

作者: jerrik | 来源:发表于2018-12-27 22:52 被阅读2次

    list是python中非常重要的数据结构,使用非常的灵活.可以方便的对list进行增删、查找、遍历、排序、插入等操作。最重要的是它的切片功能,可以快速截取子列表。一个list搞定一个基于数组的list和基于链表的list,功能比较强悍。有必要好好掌握下!

    一、list常用方法
    #- 定义一个list
    list = []
    
    #- 初始化元素
    list = [1,2,3,4,5,6,7,8,9]
    print "list-old: %s" % list
    
    #- 计算list元素的个数
    nLen = len(list)
    print "list-len: %d" % nLen
    
    #- 往list添加一个元素
    list.append(4) #随便是什么类型
    print "list-append(4): %s" % list
    
    #- 在list最前插入一个元素
    iList = list.insert(0,7)
    print "list-insert(0,7): %s" % iList
    
    #- 计算某个元素在list中出现的次数
    listCnt = list.count(2)
    print "list-count(2): %d" % listCnt
    
    #- 弹出第一个元素
    p1 = list.pop(0)
    print "list-pop-0: %s" % p1
    
    #- 弹出最后一个元素
    p2 = list.pop(-1)
    print "list-pop-(-1): %s" % p2
    
    #- 移除某个元素
    list.remove(2)   #注意,如果出现多个,只能移除第一个
    print "list-remove(2): %s" % list
    
    #- 反转list
    list.reverse()
    print "list-reverse: %s" % list
    

    结果:

    list-old: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    list-len: 9
    list-append(4): [1, 2, 3, 4, 5, 6, 7, 8, 9, 4]
    list-insert(0,7): None
    list-count(2): 1
    list-pop-0: 7
    list-pop-(-1): 4
    list-remove(2): [1, 3, 4, 5, 6, 7, 8, 9]
    list-reverse: [9, 8, 7, 6, 5, 4, 3, 1]
    
    二、list切片功能
    list = [1,2,3,4,5,6,7,8,9]
    print "full list: %s" % list
    
    #- 取出list前两个元素
    print "list[0:2]: %s" % list[0:2]
    
    #- 取出第一个到倒数第一个之间的元素(不包括倒数第一个)
    print "list[0:-1]: %s" % list[0:-1]
    
    #- 取出所有元素(也可以直接用list[:]表示)
    print "list[0:]: %s" % list[0:]
    
    #- 取出前三个元素
    print "list[:3]: %s" % list[:3]
    
    #- 前10个元素,每隔两个元素就取一个
    print "list[:10:2]: %s" % list[:10:2]
    
    #- 所有元素中,每隔3个元素就取一个
    print "list[::3]: %s" % list[::3]
    

    查看结果:

    full list: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    list[0:2]: [1, 2]
    list[0:-1]: [1, 2, 3, 4, 5, 6, 7, 8]
    list[0:]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    list[:3]: [1, 2, 3]
    list[:10:2]: [1, 3, 5, 7, 9]
    list[::3]: [1, 4, 7]
    
    三、迭代list以及排序
    3.1 迭代list
    list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print "full list: %s" % list
    
    # 方法1
    print '遍历列表方法1:'
    for i in list:
        print ("序号:%s   值:%s" % (list.index(i) + 1, i))
    
    print '\n遍历列表方法2:'
    # 方法2
    for i in range(len(list)):
        print ("序号:%s   值:%s" % (i + 1, list[i]))
    
    # 方法3
    print '\n遍历列表方法3:'
    for i, val in enumerate(list):
        print ("序号:%s   值:%s" % (i + 1, val))
    
    # 方法3
    print '\n遍历列表方法3 (设置遍历开始初始位置,只改变了起始序号):'
    for i, val in enumerate(list, 2):
        print ("序号:%s   值:%s" % (i + 1, val))
    
    3.2 list排序
    list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print "full list: %s" % list
    
    #默认升序排列
    list.sort()
    print "默认排序: %s" % list
    
    #list降序排列
    list.sort(reverse=True)
    print "reverse排序: %s" % list
    
    #字符串按ASCII排列
    list2 = ['tencent','Alibaba','google','IBM','Oracle']
    list2.sort()
    print "字符串排序: %s" % list2
    
    # 定义一个函数
    def sortByLength(content):
        return len(str(content))
    
    #自定义排序
    list2.sort(key=sortByLength,reverse=True)
    print "按字符串长度倒序排列: %s" % list2
    

    查看结果:

    full list: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    默认排序: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    reverse排序: [9, 8, 7, 6, 5, 4, 3, 2, 1]
    字符串排序: ['Alibaba', 'IBM', 'Oracle', 'google', 'tencent']
    按字符串长度自定义排序: ['Alibaba', 'tencent', 'Oracle', 'google', 'IBM']
    
    四、其它功能
    #判断元素是否存在list
    list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print "full list: %s" % list
    
    def hasElement(ele,arr = []):
        if ele in arr:
            return True
        else:
            return False
    #True
    print hasElement(2,list)
    #False
    print hasElement(10,list)
    
    #添加另外的list
    list2 = range(6,15)
    list.extend(list2)
    print "list.extend: %s" %list
    
    #利用set完成list的去重
    nList = set(list)
    print "list去重: %s" % nList
    
    //output
    full list: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    True
    False
    list.extend: [1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 10, 11, 12, 13, 14]
    list去重: set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
    
    五、总结

    今天大概把list的一些基本用法,包括切片、迭代、排序,添加list,以及list的去重都梳理了一下,个人觉得已经比较全面了!今天就到这儿吧!

    相关文章

      网友评论

        本文标题:跟我一起学Python数据结构之list

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