(四)处理列表数据
2015-09-03 17:38
423 查看
楼主想,如果要输出不太满意的托福小项成绩,而且不用对每一个数据项进行设立(实在是太繁琐),应该如何迭代处理列表呢?
例:
>>> dcon_TOEFL=['Listening','Speaking']
>>> for each_flick in dcon_TOEFL:
print(each_flick)
Listening
Speaking
注:print行之后需要多一个回车,才可运行
所以,通过for循环就可以做到迭代要求
一、for循环
for 目标标识符 in 列表:
列表处理代码(也叫组suite)
目标标识符(target identifier)在迭代处理列表时,相应的会把列表中的各个数据值分别赋至目标标识符。所以,每次执行循环代码时,目标标识符都会指示一个不同的数据值,循环会一直迭代,直到处理完列表的所有数据。
二、while循环
例:for循环
>>>for each_item in TOEFL:
print(each_item)
>>>count=0
While循环
>>>while count<len(TOEFL):
print(TOEFL[count])
count=count+1
输出结果:
Reading
28
Listening
19
Speaking
19
Writing
26
注意:1、除非需要while循环提供额外控制,否则能用for就不同while;
2、python中,单引号和双引号都可以用来创建字符串,如果字符串前面使用了某个引号,那么字符串后面也要用同样的引号;
3、如果要在一个字符串中嵌入一个双引号,可以对双引号转义:\”,或者用单引号引起字符串
例:楼主用的单引号来试的
>>>passages=['I love you TOEFL and the passages\' words are to show my love toyou']
>>>print(passages)
["I love you TOEFL and the passages'words are to show my love to you"]
4、标识符的名字可以以一个字母字符或一个下划线开头,接下来可以包括任意个字母字符、数字和/或下划线,不允许有奇怪的字符(如$);
5、python代码区分大小写(之前提到过)。
三、在列表中存储列表
Python中,每个列表都是一个列表项集合,各列表项相互之间用逗号隔开,另外列表需要中括号括起。(托福的例子用完了,下面启用GRE)
例:
>>>GRE=['Verbal',20,['TC',6,'RC',8,'SE',6],'Math',20,['MC',10,'QC',7,'DI',3]];
>>>print(GRE[2][2])
RC
此处GRE是嵌套了一个列表的列表
例:
楼主想要再复杂一点,为了节省时间,决定用head first python书上的例子
>>>movies=['The Holy Grail',1975,'Terry Jones & Terry Gilliam',91,
['Graham Chapman',['Michael Palin','JohnCleese',
'Terry Gilliam','Eric Idle','Terry Jones']]] *********python自动缩进
>>>print(movies)
['The Holy Grail', 1975, 'Terry Jones &Terry Gilliam', 91, ['Graham Chapman', ['Michael
Palin','John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]]
>>>for each_item in movies:
print(each_item)
TheHoly Grail
1975
TerryJones & Terry Gilliam
91 *********for循环只打印外列表的各个数据项
*********嵌套在内列表中的下一层内列表会原样输出
['Graham Chapman', ['Michael Palin', 'JohnCleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]
那么有没有方法可以处理内列表,从而输出所有内容呢?
四、在列表中查找列表
解决上一个问题的想法:每次处理列表中一项时,都要查看这一项本身是不是另一个列表。如果这一项确实是一个列表,那么在处理外列表中的下一像之前,先要处理这个列表。用if…else语句:
if 某个条件满足:
“true”组
else:
“false”组
用来确定当前处理的列表项本身是不是一个列表,python内只有一个BIF(build-in function)可以在这方面提供帮助——isinstance()
例:
>>>names=['Michael','Terry']
>>>isinstance(names,list)
True
>>>num_names=len(names)
>>>isinstance(num_names,list)
False
所以解决上面的问题
>>> for each_item in movies:
ifisinstance(each_item,list):
fornested_item in each_item:
print(nested_item)
else:
print(each_item)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
['Michael Palin', 'John Cleese', 'TerryGilliam', 'Eric Idle', 'Terry Jones']
但是还有一个被套列表没有得到正确处理
注意:1、python中有70多个BIF,输入dir(_builtins_)可以看到python提供的内置方法列表
五、处理多层嵌套列表
例:
处理上面问题最笨的办法:
>>> for each_item in movies:
ifisinstance(each_item,list):
fornested_item in each_item:
ifisinstance(nested_item,list):
fordeeper_item in nested_item:
print(deeper_item)
else:
print(nested_item)
else:
print(each_item)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
如何解决重复代码问题?创建函数,请看下一篇
例:
>>> dcon_TOEFL=['Listening','Speaking']
>>> for each_flick in dcon_TOEFL:
print(each_flick)
Listening
Speaking
注:print行之后需要多一个回车,才可运行
所以,通过for循环就可以做到迭代要求
一、for循环
for 目标标识符 in 列表:
列表处理代码(也叫组suite)
目标标识符(target identifier)在迭代处理列表时,相应的会把列表中的各个数据值分别赋至目标标识符。所以,每次执行循环代码时,目标标识符都会指示一个不同的数据值,循环会一直迭代,直到处理完列表的所有数据。
二、while循环
例:for循环
>>>for each_item in TOEFL:
print(each_item)
>>>count=0
While循环
>>>while count<len(TOEFL):
print(TOEFL[count])
count=count+1
输出结果:
Reading
28
Listening
19
Speaking
19
Writing
26
注意:1、除非需要while循环提供额外控制,否则能用for就不同while;
2、python中,单引号和双引号都可以用来创建字符串,如果字符串前面使用了某个引号,那么字符串后面也要用同样的引号;
3、如果要在一个字符串中嵌入一个双引号,可以对双引号转义:\”,或者用单引号引起字符串
例:楼主用的单引号来试的
>>>passages=['I love you TOEFL and the passages\' words are to show my love toyou']
>>>print(passages)
["I love you TOEFL and the passages'words are to show my love to you"]
4、标识符的名字可以以一个字母字符或一个下划线开头,接下来可以包括任意个字母字符、数字和/或下划线,不允许有奇怪的字符(如$);
5、python代码区分大小写(之前提到过)。
三、在列表中存储列表
Python中,每个列表都是一个列表项集合,各列表项相互之间用逗号隔开,另外列表需要中括号括起。(托福的例子用完了,下面启用GRE)
例:
>>>GRE=['Verbal',20,['TC',6,'RC',8,'SE',6],'Math',20,['MC',10,'QC',7,'DI',3]];
>>>print(GRE[2][2])
RC
此处GRE是嵌套了一个列表的列表
例:
楼主想要再复杂一点,为了节省时间,决定用head first python书上的例子
>>>movies=['The Holy Grail',1975,'Terry Jones & Terry Gilliam',91,
['Graham Chapman',['Michael Palin','JohnCleese',
'Terry Gilliam','Eric Idle','Terry Jones']]] *********python自动缩进
>>>print(movies)
['The Holy Grail', 1975, 'Terry Jones &Terry Gilliam', 91, ['Graham Chapman', ['Michael
Palin','John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]]
>>>for each_item in movies:
print(each_item)
TheHoly Grail
1975
TerryJones & Terry Gilliam
91 *********for循环只打印外列表的各个数据项
*********嵌套在内列表中的下一层内列表会原样输出
['Graham Chapman', ['Michael Palin', 'JohnCleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]
那么有没有方法可以处理内列表,从而输出所有内容呢?
四、在列表中查找列表
解决上一个问题的想法:每次处理列表中一项时,都要查看这一项本身是不是另一个列表。如果这一项确实是一个列表,那么在处理外列表中的下一像之前,先要处理这个列表。用if…else语句:
if 某个条件满足:
“true”组
else:
“false”组
用来确定当前处理的列表项本身是不是一个列表,python内只有一个BIF(build-in function)可以在这方面提供帮助——isinstance()
例:
>>>names=['Michael','Terry']
>>>isinstance(names,list)
True
>>>num_names=len(names)
>>>isinstance(num_names,list)
False
所以解决上面的问题
>>> for each_item in movies:
ifisinstance(each_item,list):
fornested_item in each_item:
print(nested_item)
else:
print(each_item)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
['Michael Palin', 'John Cleese', 'TerryGilliam', 'Eric Idle', 'Terry Jones']
但是还有一个被套列表没有得到正确处理
注意:1、python中有70多个BIF,输入dir(_builtins_)可以看到python提供的内置方法列表
五、处理多层嵌套列表
例:
处理上面问题最笨的办法:
>>> for each_item in movies:
ifisinstance(each_item,list):
fornested_item in each_item:
ifisinstance(nested_item,list):
fordeeper_item in nested_item:
print(deeper_item)
else:
print(nested_item)
else:
print(each_item)
The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
如何解决重复代码问题?创建函数,请看下一篇
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法