【head first python】1.初识python 人人都爱列表
#coding:utf-8 #创建简单的python列表
movies = ["The Holy Grail",
"The Life of Brain",
"The Meaning of Life"]
#可以放在同一行,但分开会更易读
#和数组一样,列表的项从零开始
print movies[1]
#>>>The Life of Brain print movies
#>>>['The Holy Grail', 'The Life of Brain', 'The Meaning of Life'] print len(movies)
#>>>3 #在列表尾部增加append(),或删除pop()数据项,还可以在末尾增加一个数据项集合extend()
movies.pop()
print movies
#>>>['The Holy Grail', 'The Life of Brain']
movies.append("my movie")
print movies
#>>>['The Holy Grail', 'The Life of Brain', 'my movie']
movies.extend(["another movie_1","another movie_2"])
print movies
#>>>['The Holy Grail', 'The Life of Brain', 'my movie', 'another movie_1', 'another movie_2'] #在列表中找到并删除一个特定项remove(),在某个特定项前插入一个数据项insert()
movies.remove("my movie")
print movies
#>>>['The Holy Grail', 'The Life of Brain', 'another movie_1', 'another movie_2']
movies.insert(2,"insert movie")#第一个参数是位置,第二个是要插入的项
print movies
#>>>['The Holy Grail', 'The Life of Brain', 'insert movie', 'another movie_1', 'another movie_2'] #向列表增加更多的数据
#现在我们要向每个电影名后面添加上电影的发行年份,年份是数字,python允许在列表中混合类型
movies = ["The Holy Grail",
"The Life of Brain",
"The Meaning of Life"]
#初始化列表
#方案一:插入年份
movies.insert(1,1975)
movies.insert(3,1979)#注意每插入一项列表长度扩大一
movies.append(1983)
print movies
#>>>['The Holy Grail', 1975, 'The Life of Brain', 1979, 'The Meaning of Life', 1983] movies = ["The Holy Grail",
"The Life of Brain",
"The Meaning of Life"]
#初始化列表
#方案二:从头构造列表
movies = ["The Holy Grail",1975,
"The Life of Brain",1979,
"The Meaning of Life",1983]
print movies
#>>>['The Holy Grail', 1975, 'The Life of Brain', 1979, 'The Meaning of Life', 1983]
'''对于小列表来说,第二种方法更好,比如现在,不必做复杂的运算''' #处理列表数据
#该使用迭代了,for循环可以适用于任意大小的列表
for each_flick in movies:
print each_flick
'''每个输出语句自动换行
>>>
The Holy Grail
1975
The Life of Brain
1979
The Meaning of Life
1983
'''
'''
字符串使用单引号和双引号均可
python大小写敏感
'''
#在列表中存储列表(列表的嵌套)
movies = ['The Holy Grail', 1975, 'The Life of Brain', 1979, ["Graham Chapman",["Michael Palin","John Cleese","Terry Gilliam","Eric Idle"]]]
#打印列表中的某一项
print movies[4][1][2]
#>>>Terry Gilliam
#打印嵌套列表中的每一项
for each_item in movies:
print each_item
'''>>>
The Holy Grail
1975
The Life of Brain
1979
['Graham Chapman', ['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle']]
'''
#嵌套在内列表的下一层列表回原样打印,需要一种机制来发现列表中的某一项其实好似一个列表
#在列表中查找列表if…else
#使用什么判断条件?python有一个内置BIF可用,是isinstance(),用于检查某个特定标识符是否含有某个特定类型的数据
name = ['Micheael','Terry']
a = isinstance(name,list)
print a
#>>>True
num_name = len(name)
a = isinstance(num_name,list)
print a
#>>>False
#该函数的返回值为True或False
#BIF有71多个,使用dir(__builtins__)查询python的内置方法表,具体查询使用help(某个BIF) #重写使得嵌套列表逐项打印
movies = ['The Holy Grail', 1975, 'The Life of Brain', 1979,
["Graham Chapman",["Michael Palin","John Cleese","Terry Gilliam","Eric Idle"]]]
for item in movies:
if isinstance(item,list):
for item_2 in item:
if isinstance(item_2,list):
for i in item_2:
print i
else:
print item_2
else:
print item
'''
>>>
The Holy Grail
1975
The Life of Brain
1979
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
'''
#但是每增加一层嵌套,就要多写一层重复的代码来进行判断和打印
#不重复代码,应当创建一个函数
#函数需要反复调用,在函数代码组内调用自己
def print_lol(the_list):
for item in the_list:
if isinstance(item,list):
print_lol(item)
else:
print item
print_lol(movies)
'''
>>>
The Holy Grail
1975
The Life of Brain
1979
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
'''
#太棒了,递归不必改变任何代码就可以处理任意深度的嵌套列表
#第一章就到这里结束了=w=
本文原创,转载请注明出处http://www.cnblogs.com/Archimedes/p/7140622.html
【head first python】1.初识python 人人都爱列表的更多相关文章
- Python学习笔记1——人人都爱列表
一些BIF函数在列表中的应用: Python 3.3.4 (v3.3.4:7ff62415e426, Feb 10 2014, 18:13:51) [MSC v.1600 64 bit (AMD64) ...
- Head First Python之人人都爱列表(1-初识Python)
IDLE 内置函数==BIF==built-in function 默认地,内置函数都是紫色,字符串是绿色,关键字是橙色. tab:自动补全 Alt-P:前一个 Alt-N:下一个 列表的特性 列表看 ...
- [Head First Python]1. 初始python-人人都爱列表
movies = [ "hello", "world",["xin","lover",["Jerry" ...
- Python_Day1_人人都爱列表
列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表中所有字母.数字0~9或 所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系. 鉴于列表通常包含多个元素,给列 ...
- 和我一起学python,初识python (life is short ,we need python)
作者:tobecrazy 出处:http://www.cnblogs.com/tobecrazy 欢迎转载,转载请注明出处.thank you! 由于项目需要(并非因为life is short), ...
- Python基础 初识Python
机器码 机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 通常意义上来理解的话,机器码就是计算机可以直接执行,并且执 ...
- python - num1 -初识python
一.了解python python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- python基础-初识Python和不同语言之间的区别
一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...
- Python 1 初识python
1.Python介绍 Python是一种高级语言,与JAVA C# 等同.可以编写各种应用程序,每种语言都有其合适的应用场景.而Python 的优势在于更加人性化.简便的语法规则,以及针对各种具体场景 ...
随机推荐
- 【Android Developers Training】 52. 打印照片
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 一个用 js 实现点阵图的编辑器演示
这是个客户的需求,具体大概是可以在一个 24*8 的点阵图上自由绘制图形,然后数据的存储是按列依次记录,用0和1分别表示是否选中,最终串成一个字符串. 整体需求难度并不复杂,所以在写demo的时候就尽 ...
- window.onload的加载和$(document).read()
1.执行时机: window.onload :必须等到网页中所有的内容加载完之后才执行. $(document).read():网页中所有的DOM结构执行完毕后.可能DOM元素并未加载完. 2.单个网 ...
- Visiual Studio CLR20r3
问题事件名称: CLR20r3 解决方法: 步骤1:开始-->所有程序-->Microsoft Visual Studio 2012-->Visual Studio To ...
- Java 9 揭秘(8. JDK 9重大改变)
Tips 做一个终身学习的人. 在本章,主要介绍以下内容: 新的JDK版本控制方案是什么 如何使用Runtime.Version类解析JDK版本字符串 JDK JRE 9的新目录布局是什么 JDK 9 ...
- Unity User Group 北京站图文报道:《Unity虚拟现实实战技巧》
时间来到了盛夏,北京UUG活动也来到了第八期.本次活动的主题为<Unity虚拟现实实战技巧>,为此我们邀请了4位资深的行业大神.这次我们仍然在北京市海淀区丹棱街5号微软大厦举行活动,在这里 ...
- sqlserver的触发器练习实例
触发器的概念:它是由事件驱动的,就像java中的监听,当某个事件发生了,就会做一些工作. 下面直接上干货,创建insert触发器.delete触发器.DDL触发器和如何查看触发器定义 1.创建三个表学 ...
- 有关struts中DispatchAction的用法小结
今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Ac ...
- (转)WebSphere MQ基础命令
--查看MQ版本-- dspmqver --查看队列状态--dspmq --创建队列管理器--crtmqm -q ECIS_QM --删除队列管理器--dltmqm ECIS_QM --启动队列管理器 ...
- iOS 使用 socket 即时通信(非第三方库)
其实写这个socket一开始我是拒绝的. 因为大家学C 语言和linux基础时肯定都有接触,客户端和服务端的通信也都了解过,加上现在很多开放的第三方库都不需要我们来操作底层的通信. 但是来了!!! 但 ...