zoukankan      html  css  js  c++  java
  • 列表

      

    列表:
      1、对序列操作包括:索引,切片,加,乘,检查成员。
      2、list、tuple、增删改查、多个变量赋值

    list:
      range()函数还有个步长的概念
      切片:
        切片的目的是,从列表中一次获取多个元素,通过索引取
        使用方式:list[index:index]和tuple[index:index]
        切片的作用范围:list和tuple和字符串,能用切片的必须要有下标
        切片后返回的是一个list

    列表生成式:
      目的:快速生成list
      列表生成式的使用方式: [代码块 for循环 if判断] 结果=只取为True的结果
      使用范围:只要适合迭代的就适合列表生成式,能用for循环的地方就能用列表生成式,比如适合list和dict

    生成器:
      这种一边循环一边计算的机制,称为生成器(Generator)。
      方法一:
        >>> g = (x * x for x in range(10))
        >>> for n in g:
        ... print(n)
      方法二:
        def fib(max):
        n, a, b = 0, 0, 1
        while n < max:
        yield b
        a, b = b, a + b
        n = n + 1
    如果一个函数定义中包含yield关键字,那么这个函数就是一个generator:
    这里,最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。
    而变成generator的函数,在每次调用next()的时行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行

    迭代:
      迭代的概念:迭代就是遍历
      目的:遍历迭代对象的所有元素
      使用方式:for...in 迭代对象
      使用范围:只要是迭代对象就能迭代
      python中的迭代对象有以下几个:
        list、tuple、dict、String、generator
      如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
        >>> from collections import Iterable
        >>> isinstance('abc', Iterable) # str是否可迭代

    Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身
      >>> for i, value in enumerate(['A', 'B', 'C']):
      ... print i, value
    list:有序列表
    list集合中的数据类型可以不同
    len()集合长度,集合长度就是元素个数
    记得最后一个元素的索引是len(classmates) - 1
    sample:
      className.append('Adma')-- 增
      className.insert(1,'jj')---------增
      className.pop(1)--------------删,删除最后一个元素,
      也可以传入索引,根据索引删除
      del lt[1]---------------删,del根据索引来删除
      remove()--------------删,根据名字来删除
      className[1]='zhangll'--------改

    l=['Apple',1,True]
    list集合中也可以是另一个list
    s = ['python', 'java', ['asp', 'php'], 'scheme']
    取元素:s[2][1]
    append()和extend()区别,append只增加一个元素,一个位置;extend增加多个元素,多个位置

    对列表通常有2中处理:
      查找元素是否在列表中
      查找元素在列表的那个位置,列表中的那个位置就是索引index
      查找元素是否在列表中
      if 'c' in lt:用in关键字
      index+1=位置,位置-1=索引
      列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表
    len([1, 2, 3]) 3 长度
    [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
    ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
    3 in [1, 2, 3] True 元素是否存在于列表中
    for x in [1, 2, 3]: print x, 1 2 3 迭代

    tuple:也是有序列表
      tuple没有增删改功能,tuple一旦初始化就不能修改
      因为tuple不能变,所以能用tuple代替list的,尽量用tuple
      tuple所谓的不变是指它中的每个元素指向永远不变
      定义空的tuple
        t=()
      定义一个只有1个元素的tuple
        t=(1,)
        不能用t=(1)
        因为()有2中含义,即可表示tuple,也可表示数学公式的中的小括号,产生歧义。因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。所以只有1个元素的tuple定义时必须加一个逗号,来消除歧义。
      “可变的”tuple,本质是tuple中的元素有个list
       ()集合就是tuple,[]集合就是list
      del tup 删除tuple
    与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组
      len((1, 2, 3)) 3 计算元素个数
      (1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
      ('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
      3 in (1, 2, 3) True 元素是否存在
      for x in (1, 2, 3): print x, 1 2 3 迭代
    任意无符号的对象,以逗号隔开,默认为元组
      print "Value of x , y : ", x,y;
    元组与列表的区别,元组它的关键是不可变性。
    如果在程序中以列表的形式传递一个对象的集合,它可能在任何地方改变;如果使用元组的话,则不能。
    元组提供了一种完整的约束。

  • 相关阅读:
    Sql:主表与子表的最新记录级联查询
    发现eclipse红叉,查看markers发现Target runtime Apache Tomcat 6.0 is not defined
    The required Server component failed to start so Tomcat is unable to start问题解决
    Spring官网下载dist.zip的几种方法
    SPRING---------配置文件的命名空间
    eclipse中egit插件使用
    eclipse不自动弹出提示(alt+/快捷键失效)
    使用jenkins配置.net mvc网站进行持续集成
    windows系统的便签
    Linq to Entity 动态拼接查询条件(重点是OR)
  • 原文地址:https://www.cnblogs.com/xuanjian-91/p/8288965.html
Copyright © 2011-2022 走看看