python初学(3)列表(List)应用(待续ing)



list 的应用
1、遍历list
(1)、for 循环迭代
(2)、while循环索引
实例:
        li = [1 , 2 , 3 , 4 , 5 , 6]

        for x in li:
            print x,
        print ''
        print '------------------------------'
        i = 0
        while i < len(li):
            print li[i],
            i += 1

(3)、多重列表遍历
实例:li = [1 , 2 , [ 3 , 4 , 5 , 6] , 7 , 8, [9 , 10] ] 按1~10读出
        False:
            for x in li:
                for y in x:
                    print y,
        True:
            for x in li:        #结果 1 2 3 4 5 6 7 8 9 10
            if type(x) == list:
                for y in x:
                    print y,
            else :
                print x,
    type函数的使用:判断数据类型

想一想:li = [1 , 2 , [ 3 , 4 , 5 , 6] ,( 7 , 8 ), [9 , 10] ] 按1~10读出
列表里牵扯元祖又该如何遍历?


2、清空列表

实例:
        l1 = []
        l1[:] = []
        del l1[:]


   
3、列表模拟栈和队列(是两种非常有用的数据结构)

实例:
        (1)、栈:先进后出
        li = [1 , 2 , 3 , 4 , 5 , 6]
        li.append(7) #相当于进栈,push()函数
        li.pop()     #相当于C语言里的top()和pop()函数
        print '--------------------------'
        (2)、队列:先进先出
        li = [1 , 2 , 3 , 4 , 5 , 6]
        li.pop(0)    #取队列首元素,相当于pop()和front()函数
        li.append(7) #相当于进队,push()函数


4、列表去重(由麻烦到简单)
(1)、pop()去重
借助pop函数删除每个数以后的所有与他重复的数

实例:
        li = [ 1, 1 , 2 , 3 , 1 , 1 , 2 , 3 , 5 , 7 , 9 , 1 , 2]
        i = 0
        while i <len(li):
            pf = li.index(li[i])
            if li.count(li[i]) > 1:
                li.pop(li.index(li[i] , pf + 1))
                i -= 1
            i += 1
        print li

(2)、append()去重
借助于另一个列表,起到类似于集合去重的作用

实例:
        li = [ 1, 1 , 2 , 3 , 1 , 1 , 2 , 3 , 5 , 7 , 9 , 1 , 2]
        li2 = []
        for x in li:
            if x not in li2:
                li2.append(x)
        li = li2[:]
        print li

(3)、set(集合)去重
直接利用集合里的元素不能相同,去重,最为简单

实例:
        li = [ 1, 1 , 2 , 3 , 1 , 1 , 2 , 3 , 5 , 7 , 9 , 1 , 2]
        li = list(set(li))
        print li

   
(4)、还可以利用二重循环,列表切片的知识去重,但较为麻烦,可以自己试着想一下










你可能感兴趣的:(python初学(3)列表(List)应用(待续ing))