列表

  

列表:
  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;
元组与列表的区别,元组它的关键是不可变性。
如果在程序中以列表的形式传递一个对象的集合,它可能在任何地方改变;如果使用元组的话,则不能。
元组提供了一种完整的约束。

原文地址:https://www.cnblogs.com/xuanjian-91/p/8288965.html