Python之List的前世今生(常见的)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/84556235

1、在Python中的List特别方便

2、基本概念:List指的就是线性表,中文叫列表、表、啥的都行

3、创建一个空的List,利用的中括号[]

list = []

4、偏移量、下标(角标,索引),说的有是一回事,第一个元素的下标是0,最后一个元素的下标是-1或者len(list) - 1

5、【增】添加元素的方法

list.append() 在list 末尾,即表的尾部增加一个元素

list.insert(index,'4') 在指定位置添加元素,如果指定的下标不存在,那么就是在末尾添加,这点Python相当牛逼

listA.extend(listB) 合并两个list   listB中仍有元素,可见是从线性表的尾部开始合并

#这是List合并的例子
>>> listA = [1,2,3]
>>> listB = [4,5,6]
>>> listA.extend(listB)
>>> listA
[1, 2, 3, 4, 5, 6]

6、【查】查看List中的值

>>> listA
[1, 2, 3, 4, 5, 6]
>>> listA.count(4)    //嘿嘿,查询元素4在list中的有几个
1
>>> listA.index(5)    //查询元素5在list中的位置,从头部开始,第一个找到的index,找不到抛异常
4
>>>listA[3]  //通过下标访问对应的元素
4

7、【删】删除List中的元素

>>> listA
[1, 2, 3, 4, 5]
>>> listA.pop()  //删除栈顶的元素,后进先出,最后一个元素,显然尾部最后一个元素,是最后插入的嘛
5
>>> listA
[1, 2, 3, 4]
>>> listA.pop(0) //干掉对应下标的元素
1                //你会发现每次pop()方法,还要打印出来删除掉的元素哈
list.remove(xx) 删除list 里面的一个元素,有多个相同的元素,删除第一个 

list.pop() 有返回值,就是元素,我发现交互模式下,不写print,也给你输出来

list.remove() 无返回值,好吧,牛

8、【删】用del删除List元素,或者整个List

del  list[n] 删除指定下标对应的元素 

del list 删除整个列表,list删除后无法访问

9、排序和反转

list.reverse() //将列表反转

list.sort() //排序,默认升序

list.sort(reverse=True)  //降序排列

//注:list 中有字符串,数字时不能排序,排序针对同类型

10、列表操作的函数,这牛13

len(list):列表元素个数 
max(list):返回列表元素最大值 
min(list):返回列表元素最小值 
list(seq):将元组转换为列表

enumerate:用法(打印元素对应的下标)

11、list 循环和切片

循环

for i in list:
         print i
切片(list 取值的一种方法)

name[n:m]  切片是不包含后面那个元素的值(顾头不顾尾,对的)

name[:m] 如果切片前面一个值缺省的话,从开头开始取,从下标0开始

name[n:] 如果切片后面的值缺省的话,取到末尾,从长度开始

name[:] 如果全部缺省,取全部

name[n:m:step]  step:步长  隔多少个元素取一次,默认不填step == 0,直接返回后继元素

步长是正数,从左往右取 比如1

步长是负数,从右往左取 比如-1

注:切片同样适用于字符串,字符串也有下标,艹,那是必须的

12、列表生成方式

例子1:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
可以用list(range(1, 11))   //range()函数本身就会返回一个List,不含当前数的List,也可以传一 
                          //个参数,默认从0开始

>>>list = list(range(1,11))

例子2:生成[1x1, 2x2, 3x3, ..., 10x10]
可以用list = list(x * x for x in range(1,11))
例子3:for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:list = list(x * x for x in range(1,11) if x%2== 0)     //这里使用list函数

例子4:使用两层循环,可以生成全排列:
list = [m + n for m in 'ABC' for n in 'XYZ']
print(list)
输出结果:['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

13、list也一样,不同类型的对象可以放在一起

>>> tempA = [2,"df","3.23"]
>>> tempA
[2, 'df', '3.23']


 

猜你喜欢

转载自blog.csdn.net/cadi2011/article/details/84556235