1. 列表的生成方法:

    快捷创建list,两种方式:split方法、list函数和range函数配合使用

    split切割字符串:

    >>> 'a,b,c,d'.split(',')
    ['a', 'b', 'c', 'd']

    list函数生成列表

    >>> list('abcd')
    ['a', 'b', 'c', 'd']

    list和range函数配合生成列表

    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> [x for x in range(5)]   #python列表解析器
    [0, 1, 2, 3, 4]
    >>> [x for x in range(10) if x%2==0]  #加判断条件
    [0, 2, 4, 6, 8]
    >>> [x+2 for x in range(10) if x%2==0]  #还可以在前面加上运算
    [2, 4, 6, 8, 10]
    >>> [(x,y+1) for x in range(3) for y in range(3)]   #生成一个2*3的循环表
    [(0, 1), (0, 2), (0, 3), (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)]
    >>> l=[]                #也可以用for循环生成,但是效率没列表解析器高
    >>> for i in range(5):
    ...     l.append(i)
    ... else:
    ...     print l
    ...
    [0, 1, 2, 3, 4]
  2. 读取列表和切片访问

>>> a=list('abcde')
>>> a
['a', 'b', 'c', 'd', 'e']
>>> a[1]  #取列表中第二个字符,注意列表是从0开始计数的
'b'
>>> a[:]  #取列表中全部内容
['a', 'b', 'c', 'd', 'e']
>>> a[1:] #取第二个字符到结尾的内容
['b', 'c', 'd', 'e']
>>> a[1:3] #取第二个字符到第四个字符之前的内容,不包括第四个字符
['b', 'c']
>>> a[:3]   #取开头到第四个字符之前的内容
['a', 'b', 'c']
>>> a[:-1]   #取开头到最后一个字符之前的内容
['a', 'b', 'c', 'd']
>>> a[-2:-3]  #因为取值都是从左到右,倒序也是,所以-2和-3无重叠,为空
[]
>>> a[-2:-1]  #取倒数第二个字符到倒数第一个字符之前的内容
['d']

3. 列表新增内容

append、extend、+、insert

>>> a=[1,2,3]
>>> a.append('a,b') #append在列表最后添加,原样添加
>>> a
[1, 2, 3, 'a,b']
>>> a.append(['a','b'])
>>> a
[1, 2, 3, 'a,b', ['a', 'b']]
>>> a+['a','b']      #合并列表,列表比较大时耗费内存
[1, 2, 3, 'a,b', ['a', 'b'], 'a', 'b']
>>> a                #用+合并列表时并不改变原列表
[1, 2, 3, 'a,b', ['a', 'b']]
>>> a.extend('ab')   #当extend括号里面不是列表时,他会把内容拆分追加到a之后
>>> a
[1, 2, 3, 'a,b', ['a', 'b'], 'a', 'b']
>>> a.extend(['ab','ac'])  #当extend括号里面是列表时,他会把列表内容追加到a之后
>>> a
[1, 2, 3, 'a,b', ['a', 'b'], 'a', 'b', 'ab', 'ac']
>>> a.insert(3,4)  #insert 在第3个位置插入4(从0开始计数)
>>> a
[1, 2, 3, 4, 'a,b', ['a', 'b'], 'a', 'b', 'ab', 'ac']
>>> a.insert(4,['abc'])  #插入列表
>>> a
[1, 2, 3, 4, ['abc'], 'a,b', ['a', 'b'], 'a', 'b', 'ab', 'ac']

4. 修改列表内容

>>> a=[1,2,3,4]
>>> a[1]=5    #把列表第1个计数位置的值修改成5(从0开始计数)
>>> a
[1, 5, 3, 4]
>>> a[1:]='abc'  #把第列表第1个计数位置到最后计数位置修改成abc,注意如果是切片替换的话,字符串abc被切割了
>>> a
[1, 'a', 'b', 'c']
>>> a[1]='abc'  #但是给某个索引直接赋值时,就不切割了
>>> a
[1, 'abc', 'b', 'c']
>>> a[1:]=['abc']  #如果替换成的是列表也不会切割
>>> a
[1, 'abc']

5. 删除列表内容

del、remove、pop

>>> a=[1,2,3,4,5,6,7,8,9]
#del可以按照索引和切片来删除
>>> del a[1]  #删除计数为1的内容
>>> a
[1, 3, 4, 5, 6, 7, 8, 9]
>>> del a[-3:]  #删除倒数第三个位置一直到最后的内容
>>> a
[1, 3, 4, 5, 6]
#remove只能按照值来删除
>>> a.remove(4)  #删除列表中值为4的内容
>>> a
[1, 3, 5, 6]
>>> a.pop()  #pop默认删除最后一个内容,并返回结果
6
>>> a
[1, 3, 5]
>>> a.pop(1) #删除索引为1的内容
3
>>> a
[1, 5]

6. 排序和反转

sort、reverse

>>> a=[4,3,7,5,1]
>>> a.reverse()    #reverse反转
>>> a
[1, 5, 7, 3, 4]
>>> a.sort()     #sort排序
>>> a            #sort后a的列表排序也改变了,但如果不想让a的排序改变呢?
[1, 3, 4, 5, 7]
>>> a=[4,3,7,5,1]
>>> y=a.sort()  #这种做法是不行的,因为sort是直接改变列表的排序,不返回内容,所以y为空
>>> y
>>> a
[1, 3, 4, 5, 7]
>>> a=[4,3,7,5,1]
>>> y=a[:]   #先把a赋值给y
>>> y
[4, 3, 7, 5, 1]
>>> y.sort()  #排序
>>> y
[1, 3, 4, 5, 7]
>>> a          #y的值改变了,a的值没有改变
[4, 3, 7, 5, 1]
>>> a=[4,3,7,5,1]
>>> y=a        #不能把a直接赋值给y,那样y和a想当于软连接,y改变,a也会改变的
>>> y.sort()
>>> y
[1, 3, 4, 5, 7]
>>> a         #a也改变了
[1, 3, 4, 5, 7]

7. 计数和索引位置

count、index


>>> x=['a','b','c','a','b','a','a','a']
>>> x.count('a')  #计算a出现的个数                    
5
>>> x.index('b')   #index查到b第一次出现的索引位置
1
>>> x.index('a')   #查找a第一次出现的索引位置
0
>>> x.index('a',2,-1) #查到从索引为2的位置到最后中第一次a的索引位置
3

8. 判断:


>>> x=['a','b','c','e']              
>>> 'e' in x   #in
True
>>> 'f' in x
False
>>> 'f' not in x  #not in
True