Python 列表

列表操作
    列表用一对 [] 生成,中间的元素用 , 隔开,其中的元素不需要是同一类型,同时列表的长度也不固定。
    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
    列表的数据项不需要具有相同的类型
    
    长度
        用 len 查看列表长度:
            len(l)
    访问列表
            >>> li=[1,2,3,4]
            >>> print(li)
            [1, 2, 3, 4]
            >>> for i in li:
            ...     print(i)
            >>> li=[1,2,3,4]
            >>> i in li
            True

#coding=UTF-8
li=[1,2,3]
# print(li)
# 
# for i in li:
#     print(i)
    
print(1 in li)

           
        列表索引
            li=[a   ,b  ,c  ,d   ]
                0    1   2   3
               -4  -3   -2  -1
            >>> li=[1,2,3,4]
            >>> print(li[0])
            1
            >>> print(li[1])
            2
            >>> print(li[2])
            3

#coding=UTF-8
a=[1,2,3,'a','b','c']
print(a[2:])
print(a[3:7])
print(a[:-1]) 
print(a[-1:]) 

           
        列表切片
            队列表中元素进行操作,比如说截取i->j,实际上截取的是i->j-1

            a=[1,2,3,'a','b','c']
            print(a[2:])
            print(a[3:7])
            print(a[:-1])
            print(a[-1:]) 


        拼接列表
            >>> li=[1,2,3,4]
            >>> li2=[10,20,30,40]
            >>> print(li+li2)
            [1, 2, 3, 4, 10, 20, 30, 40]
            >>> li=[1,2,3,4]
            >>> li2=['heygor','douyu','zhibo']
            >>> print(li+li2)
            [1, 2, 3, 4, 'heygor', 'douyu', 'zhibo']

#coding=utf-8
li1=['longgor','kenai']
li2=['naofu','xiaoju','dafeinang']
# print(li1+li2)
c=li1+li2
for i in c:
    print(i)

           
        更新列表
            中括号中数字为元素的下标
            >>> li=[1,2,3,4]
            >>> li[0]=8
            >>> print(li)
            [8, 2, 3, 4]
            >>> li[-2]=2,3
            >>> print(li)
            [8, 2, (2, 3), 4]

#coding=utf-8
l=[1,2,3]
l[2]='heygor'
print(l)

l[2]=[4,5,6]
print(l)


            
        删除列表
            Python提供了删除列表中元素的方法 'del'。
            删除列表中的第一个元素:
                >>> li=[1,2,3,4]
                >>> del li[2]
                >>> print(li)
                [1, 2, 4]

#coding=utf-8
l=[1,2,3]
print(l)
del l[2]
print(l)

           
测试从属关系
    用 in 来看某个元素是否在某个序列(不仅仅是列表)中,用not in来判断是否不在某个序列中。

a = [10, 11, 12, 13, 14]
print 10 in a
print 10 not in a

"""
True
False
"""

    也可以作用于字符串:

s = 'hello world'
print 'he' in s
print 'world' not in s

"""
True
False
"""

    列表中可以包含各种对象,甚至可以包含列表:

a = [10, 'eleven', [12, 13]]
a[2]
#[12, 13]

    a[2]是列表,可以对它再进行索引:

a[2][1]
#13


测试从属关系
    用 in 来看某个元素是否在某个序列(不仅仅是列表)中,用not in来判断是否不在某个序列中。

a = [10, 11, 12, 13, 14]
print 10 in a
print 10 not in a

"""
True
False
"""

    也可以作用于字符串:

s = 'hello world'
print 'he' in s
print 'world' not in s

"""
True
False
"""

    列表中可以包含各种对象,甚至可以包含列表:

a = [10, 'eleven', [12, 13]]
a[2]
#[12, 13]

    a[2]是列表,可以对它再进行索引:

a[2][1]
#13

列表方法
    不改变列表的方法
    列表中某个元素个数count
    l.count(ob) 返回列表中元素 ob 出现的次数。

a = [11, 12, 13, 12, 11]
a.count(11)
#2

    列表中某个元素位置index
    l.index(ob) 返回列表中元素 ob 第一次出现的索引位置,如果 ob 不在 l 中会报错。

a.index(12)
#1
    不存在的元素会报错:
a.index(1)

"""
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-26-ed16592c2786> in <module>()
----> 1 a.index(1)

ValueError: 1 is not in list
"""

   
改变列表的方法
    向列表添加单个元素
    l.append(ob) 将元素 ob 添加到列表 l 的最后。

a = [10, 11, 12]
a.append(11)
print a

#[10, 11, 12, 11]

    append每次只添加一个元素,并不会因为这个元素是序列而将其展开:

a.append([11, 12])
print a

#[10, 11, 12, 11, [11, 12]]

    向列表添加序列
        l.extend(lst) 将序列 lst 的元素依次添加到列表 l 的最后,作用相当于 l += lst。

a = [10, 11, 12, 11]
a.extend([1, 2])
print a

#[10, 11, 12, 11, 1, 2]

    插入元素
        l.insert(idx, ob) 在索引 idx 处插入 ob ,之后的元素依次后移。

a = [10, 11, 12, 13, 11]
# 在索引 3 插入 'a'
a.insert(3, 'a')
print a

#[10, 11, 12, 'a', 13, 11]

    移除元素
        l.remove(ob) 会将列表中第一个出现的 ob 删除,如果 ob 不在 l 中会报错。

a = [10, 11, 12, 13, 11]
# 移除了第一个 11
a.remove(11)
print a

#[10, 12, 13, 11]

    弹出元素
        l.pop(idx) 会将索引 idx 处的元素删除,并返回这个元素。

a = [10, 11, 12, 13, 11]
a.pop(2)
#12

    排序
        l.sort() 会将列表中的元素按照一定的规则排序:

a = [10, 1, 11, 13, 11, 2]
a.sort()
print a

#[1, 2, 10, 11, 11, 13]

        如果不想改变原来列表中的值,可以使用 sorted 函数:

a = [10, 1, 11, 13, 11, 2]
b = sorted(a)
print a
print b
"""
[10, 1, 11, 13, 11, 2]
[1, 2, 10, 11, 11, 13]
"""

    列表反向
        l.reverse() 会将列表中的元素从后向前排列。

a = [1, 2, 3, 4, 5, 6]
a.reverse()
print a

#[6, 5, 4, 3, 2, 1]

        如果不想改变原来列表中的值,可以使用这样的方法:

a = [1, 2, 3, 4, 5, 6]
b = a[::-1]
print a
print b
"""
[1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1]
"""

        如果不清楚用法,可以查看帮助:

a.sort?
原文地址:https://www.cnblogs.com/mysterious-killer/p/10033922.html