首页 > 编程语言 > 详细

[python]学习笔记——列表

时间:2014-03-11 10:30:44      阅读:509      评论:0      收藏:0      [点我收藏+]

Python列表的主要属性:

1)任意对象的有序集合

2)通过偏移读取

3)可变长度、异构和任意嵌套

4)属于可变序列的分类

5)对象引用数组

一、创建列表list0之后

1、在在列表末尾增加一个数据项,使用append()方法

list0.append("data")

2、从列表末尾删除一个数据项,使用pop()方法

list0.pop()

3、从列表末尾增加一个数据项集合,使用extend()方法

list0.extend(["data0","data1","data2", ...])

4、从列表中找到并删除一个数据项,使用remove()方法

list0.remove("data")

5、在列表中某一特定位置前添加一个数据项,使用insert()方法

list0.insert(n,"data")  #n表示列表中某一特定位置

6、是列表中的数据项升序排列,使用sort()方法

list0.sort()

7、将列表中的所有数据翻转,使用reverse()方法

list0.reverse()

8、查找列表中某元素的偏移量,使用index()方法

list0.index()

二、迭代的方法打印列表的数据

1 list1 = [data0,data1,data2,data3, ... ,dataN]
2 
3 for each_data in list1:
4 
5     print each_data

python中的for循环就是为了处理列表和python中的其他迭代结构

列表时python中最常用的迭代数据结构,需要迭代处理一个列表时,最好使用for循环

也可以使用while循环

1 count = 0    #使用while循环需要考虑一个状态信息,要加入一个count计数器
2 while count < len(list1):
3     print list1[count]
4     count = count + 1
5 #以上代码效果等同于上面的for循环

 列表中可以嵌套列表,使用for循环时,只会打印出最外层的列表,而嵌套的列表则只会原样打印出来

三、在列表中查找列表

每次处理列表时,要查看处理的数据项是不是列表,如果是列表则要在处理下一个数据项之前先处理这个嵌套的列表

在Python中使用if...else...的模式。

Python中内置了一个isinstance(name,type)的方法  #name是变量的名称,type是变量的类型,其返回值为True或者False

bubuko.com,布布扣
 1 ls0 = [aa,[aaa,[aaaa,aaab,aaac],aab,aac],bb,cc]
 2 
 3 for lsa in ls0:
 4     if isinstance(lsa,list):
 5         for lsb in lsa:
 6             if isinstance(lsb,list):
 7                 for lsc in lsb:
 8                     print lsc
 9         else:
10             print lsb
11     else:
12         print lsa
bubuko.com,布布扣

运行程序,打印出的结果

1
2
3
4
5
6
7
8
9
aa
aaa
aaaa
aaab
aaac
aab
aac
bb
cc

多层的嵌套循环可以打印出列表中的列表中的列表中的数据,但是方法过于麻烦繁琐,令人头疼

发现上面的多层嵌套代码重复性语句过多,可以使用函数来减少代码的重复

bubuko.com,布布扣
 1 ls0 = [aa,[aaa,[aaaa,aaab,aaac],aab,aac],bb,cc]
 2 
 3 def DisplayLst(input_lst):
 4     for lsa in input_lst:
 5            #如果数据项是列表类型,则调用Displayst函数,否则打印此数据项
 6         if isinstance(lsa,list):    
 7             DisplayLst(lsa)
 8         else:
 9             print lsa
10 
11 DisplayLst(ls0)
bubuko.com,布布扣

解决之道:递归

使用函数和递归把复杂的多层嵌套简单化(Python3中允许的嵌套层数不超过100)

 

四、列表的解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
list2 = [[1,2,3],[4,5,6],[7,8,9]]
list21 = [row[1] for row in list2]
>>list21
[2,5,8]
>>[row[1]+1 for row in list2]
[3,6,9]
>>[row[1] for row in list2 if row[1] % 2 == 0]
[2,8]
>>[list2[i][i] for i in [0,1,2]]
[1,5,9]
>>[c * 2 for c in ‘spam‘]
[‘ss‘,‘pp‘,‘aa‘,‘mm‘]
 
>>G = (sum(row) for row in list2)
>>next(G)
6
>>next(G)
15
 
>>list(map(sum,list2))<br>[6,15,24]

  

[python]学习笔记——列表,布布扣,bubuko.com

[python]学习笔记——列表

原文:http://www.cnblogs.com/crazystonely112358/p/3589914.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!