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

来源:互联网 发布:sql2000数据库安装 编辑:程序博客网 时间:2024/06/06 00:17


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)、还可以利用二重循环,列表切片的知识去重,但较为麻烦,可以自己试着想一下










1 0