zoukankan      html  css  js  c++  java
  • ex32 循环和列表

    1、列表的所有基本功能操作。

    2、通过for循环能够实现整个列表所有元素的打印。

    3、range函数:range(stop)  ;range(start, stop[, step])  

      range函数是一个用来创建算数级数序列的通用函数,返回一个左闭右开的序列数。

    以下是练习中的代码:

     1 #-*- coding: UTF-8 -*-
     2 the_count = [1,2,3,4,5]
     3 fruits = ['apple','orange','pears','apricots']
     4 change = [1,'pennies',2,'dimes','3','quarters']
     5 
     6 for number in the_count:
     7     print "This is count %d" % number
     8     
     9 for fruit in fruits:
    10     print "A fruit of type:%s" % fruit
    11     
    12 for i in change:
    13     print "I got %r" %i
    14     
    15 elements = []
    16 
    17 for i in range (0,6):#包括前面不包括后面
    18     print "Adding %d to the list." %i
    19     elements.append(i)
    20     
    21     
    22 for i in elements:
    23     print "Element was :%d" % i

     下面是之前关于List操作的笔记。因为这个是Pytho3,所以在print后面加上了()。

    六、列表的使用
      1、列表的基本格式
    1 names=["a","b","c","d","e","b"]

    2、对于列表的对象查询

    复制代码
    1 print(names[3])#调用列表中的对象,从左到右依次为0,1,2,3...
    2 print(names[1:3])#切片,从左边开始的话,顾头不顾尾
    3 print(names[-1])#切片,调用最后一位,从右开始数
    4 print(names[-3:-1])#切片,按照从最后开始数的方法,但是切片还是从左往右并且顾头不顾尾的。
    5 print(names[-3:])#如果要取最后一位,那么:后边应该不写东西
    6 print(names[:2])#同理,如果说是从第一个开始,前面是0,也可以不写。
    7 print(names[0:-1:2])#跳着切片,最后一个2为步长
    复制代码

    3、对于列表的一些拓展功能的使用

     1)增加元素

    1 names.append("F")#添加元素到后边
    2 names.insert(1,"F")#添加元素到指定位置,想到那个位置就写那个位置的下标

    2)更改元素

    1 names[1]="B" #更改对应位置上的元素

    3)删除元素

    1 names.remove("c")#这种方式直接写要删除对象的内容
    2 del names[2]#这个就是指定位置下标来删
    3 names.pop(2) #pop和del起的作用其实基本是一样的,不过要是默认不写下标的话就会删除最后一个对象。

    4)查询元素

    1 print (names.index("c"))#对于已知内容的对象,打印其位置。
    2 print(names.count("b"))#打印相同对象在列表中出现的次数

    5)其他的一些

    复制代码
    1 names.clear()#清空整个表格
    2 names.reverse()#反转整个表格
    3 names.sort()#排序,按照ASCII码的顺序进行排列
    4 names2=["1","2","3"]
    5 names.extend(names2)#拓展表格
    6 print(names)
    复制代码

    6)关于list_.copy()的一些用法

      a.在只有一级列表的情况下,直接用copy是能够实现完全copy的,并且当names列表当中有元素变化时,names2是不会变化的。
    复制代码
    1 names=["a","b","c","d","e","b"]
    2 names2=names.copy()
    3 print(names)
    4 print(names2)
    5 
    6 #输出结果:
    7 ['a', 'b', 'c', 'd', 'e', 'b']
    8 ['a', 'b', 'c', 'd', 'e', 'b']
    复制代码

     b.在这里有两级列表,然后更改原始列表中的第一级的一个元素,names2当中并不会发生变化。

    复制代码
    names=["a","b","c",[1,2,3],"d","e","b"]
    names2=names.copy()
    names[1]="B"
    print(names)
    print(names2)
    
    #输出结果:
    ['a', 'B', 'c', [1, 2, 3], 'd', 'e', 'b']
    ['a', 'b', 'c', [1, 2, 3], 'd', 'e', 'b']
    复制代码

    c、但是看下边,当二级列表中的元素发生改变时,names2也变了。

    复制代码
    names=["a","b","c",[1,2,3],"d","e","b"]
    names2=names.copy()
    names[1]="B"
    names[3][1]="贰"
    print(names)
    print(names2)
    
    #输出结果:
    ['a', 'B', 'c', [1, '贰', 3], 'd', 'e', 'b']
    ['a', 'b', 'c', [1, '贰', 3], 'd', 'e', 'b']
    复制代码

     d、如果不使用copy,直接用前面的赋值:那么最后连最浅的一层也复制不了。

    复制代码
     1 names=["a","b","c",[1,2,3],"d","e","b"]
     2 names2=names
     3 names[1]="B"
     4 names[3][1]="贰"
     5 print(names)
     6 print(names2)
     7 
     8 #输出结果:
     9 ['a', 'B', 'c', [1, '贰', 3], 'd', 'e', 'b']
    10 ['a', 'B', 'c', [1, '贰', 3], 'd', 'e', 'b']
    复制代码

    e、上面的copy情况呢,就是所谓的浅copy,如果需要进行彻底的deepcopy,就需要调用copy模块。

    复制代码
     1 import copy
     2 names=["a","b","c",[1,2,3],"d","e","b"]
     3 names2=copy.deepcopy(names)
     4 names[1]="B"
     5 names[3][1]="贰"
     6 print(names)
     7 print(names2)
     8 
     9 #输出结果:
    10 ['a', 'B', 'c', [1, '贰', 3], 'd', 'e', 'b']
    11 ['a', 'b', 'c', [1, 2, 3], 'd', 'e', 'b']
    复制代码
    但是一般来说这种deepcopy不建议常用,因为毕竟有的时候有的列表动辄上万的数据量,如果完全复制一份,则会白白占据大量的空间,没必要。
     
    f.关于浅copy的应用,这里举一个例子,但是事先说一下,在实际生活中不是用这种方法来弄的。
      可以利用浅copy事先如下功能:
      创立一个多个人的共同账户,当一个账户的余额有变动时,其余的账户也跟着变动。
      
     View Code

     g、关于列表的循环

    复制代码
     1 names=["a","b","c","d","e","b"]
     2 for i in names:
     3     print(i)
     4 
     5 #输出结果:
     6 a
     7 b
     8 c
     9 d
    10 e
    11 b
    复制代码
  • 相关阅读:
    微信开发 (一) 消息回复
    java文本获取
    Axis2开发webservice详解
    springmvc 统一处理异常
    easyui 动态添加input标签
    excel 导入
    eclipse启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
    配置阿里云SLB全站HTTPS集群
    Nginx之HTTPS
    Nginx实现rewrite重写
  • 原文地址:https://www.cnblogs.com/dingtou00/p/7795693.html
Copyright © 2011-2022 走看看