[Python 从入门到放弃] 2. 列表的其它操作
1. 列表可以混合不同类型的数据项
- movies=['《黄飞鸿之英雄有梦》','《寒战2》','《乘风破浪》']
在这句代码中,数据项为电影名称,现在这个列表用来保存电影。
我需要也把电影的发行的年份也保存进来,类似这种格式:
《黄飞鸿之英雄有梦》 2014 《寒战2》2016 《乘风破浪》2017
在每部电影后面都加上年份。
这可以用到列表的了一个特性,不同类型的数据可以混合在同一个列表。
ps:在java或者c++中,同一个数组只能保存同一种数据类型的元素
修改后是这样:
- movies=['《黄飞鸿之英雄有梦》',2014,'《寒战2》',2016,'《乘风破浪》',2017]
- 现在有两种方法:1.直接定义一个这样的列表
- movies=['《黄飞鸿之英雄有梦》',2014,'《寒战2》',2016,'《乘风破浪》',2017]
2.在原来的列表上进行插入
- # 原本是movies=['《黄飞鸿之英雄有梦》','《寒战2》','《乘风破浪》']
- movies.insert(1,2014) # 在0后面插入
- movies.insert(3,2016) # 上一句代码已经插入了一个数 所以现第二部电影的位置为2 插入位置就为3
- movies.append(2017) #最后的数直接用append()就好
2.列表中的列表
现在,需要在电影列表中加入主演的名字
我们重新定义一个列表:
- movies=['《黄飞鸿之英雄有梦》',['彭于晏','王珞丹','井柏然'],'《寒战2》',['彭于晏','梁家辉','郭富城'],'《乘风破浪》',['彭于晏','邓超','赵丽颖']]
对,还有这种操作!
列表中可以包含列表
这样子就有两层列表,外围列表and嵌套列表,也就是列表中的列表
问题1:如何遍历输出列表的数据项:
- for item in movies: # item只是一个自定义变量
- print(item)
- '''执行过程:1. 将列表的一个数据项赋值给item (item 是合法变量)2.执行冒号里面的代码段:打印输出item3.循环操作第1.2步骤,知道列表中所有的数据项都使用过'''
运行结果:
- 《黄飞鸿之英雄有梦》
- ['彭于晏','王珞丹','井柏然']
- 《寒战2》
- ['彭于晏','梁家辉','郭富城']
- 《乘风破浪》
- ['彭于晏','邓超','赵丽颖']
- '''运行的结果,虽然能够将电影名字都输出,以及输出其演员名单,但并不能逐个输出演员名字'''
也就是,这次遍历是外围列表的数据项都输出了(嵌套的列表也被视为外围列表的数据项),但内层嵌套的列表的数据项并不能逐一打印输出
我们需要是这样的:
- 《黄飞鸿之英雄有梦》
- 彭于晏
- 王珞丹
- 井柏然
怎么办?
isinstance()方法可以排上用场:
isinstance()方法用于判断参数1是否是参数2指定的那种数据类型,是返回True,错误False
- isinstance(movies,list) # 判断movies是不是一个列表 return True/False
上面我们想要打印输出内层嵌套列表的数据项,
1.可以在外围列表遍历的时候检测该数据项是不是列表
2.如果是,再遍历该列表 如何打印输出
3.如果不是,直接打印输出
- for item in movies:
- if isinstance(item,list): #判断是不是列表
- for item_in in item:
- print(item_in)
- else:
- print(item) #不是就直接输出
执行结果:
- 《黄飞鸿之英雄有梦》
- 彭于晏
- 王珞丹
- 井柏然
- 《寒战2》
- 彭于晏
- 梁家辉
- 郭富城
- 《乘风破浪》
- 彭于晏
- 邓超
- 赵丽颖
现在已经OJBK了,但是好像还有问题?
[Python 从入门到放弃] 2. 列表的其它操作的更多相关文章
- [Python 从入门到放弃] 1. 列表的基本操作
''' 列表 Create By 阅后即焚 On 2018.1.29 ''' 1. 列表的定义 列表看起来好像其它编程语言中的数组,但列表具备更加强大的功能,它是Python完备的集合对象,现在,你可 ...
- [Python 从入门到放弃] 6. 文件与异常(二)
本章所用test.txt文件可以在( [Python 从入门到放弃] 6. 文件与异常(一))找到并自行创建 现在有个需求,对test.txt中的文本内容进行修改: (1)将期间的‘:’改为‘ sai ...
- Python从入门到放弃系列(Django/Flask/爬虫)
第一篇 Django从入门到放弃 第二篇 Flask 第二篇 爬虫
- python全栈开发从入门到放弃之列表的内置方法
1.列表切片 l=['a','b','c','d','e','f'] print(l[1:5]) # 根据索引号来切片,但顾头不顾尾 ['b', 'c', 'd', 'e'] print(l[1:5: ...
- Python从入门到放弃
计算机基础 01 计算机基础之编程 02 计算机组成原理 03 计算机操作系统 04 编程语言分类 Python解释器 05 Python和Python解释器 06 执行Python程序的两种方式 0 ...
- [Python 从入门到放弃] 5. 文件与异常(一)
1.文件操作: 文件操作包含读/写 从文件中读取数据 向文件写入数据 Python中内置了open()方法用于文件操作 (更多关于open()BIF介绍 阅读此篇) 基本模板: 1.获取文件对象 2. ...
- [Python 从入门到放弃] 4. 什么是可选参数
参数在函数中使用,顾名思义.可选参数就是:这个参数是可选的 也就是可有可无 我们来看一下这个例子: ver 1: 1.定义一个迭代输出列表元素的函数myPrint 2.参数为 列表 def myPri ...
- [Python 从入门到放弃] 3. BIF(内建函数)
BIF (built-in functions) Python中提供了70多个内建函数,具备大量的现成功能. BIF不需要专门导入,可以直接使用,拿来就用 1.print() # 在屏幕上打印输出 如 ...
- Python知识点入门笔记——特色数据类型(列表)
Python中提供了列表这种数据类型(类型为list)来存储多个值构成的序列 用逗号将不同数据分隔开,整体放在一个方括号[]里就创建了列表 列表中的数据类型可以是相同的,也可以是不同的 列表中还可以嵌 ...
随机推荐
- crontab和crond分析
目录 目录 1 1. 研究目的 1 2. 基本概念 1 3. crontab 1 3.1. 编辑 2 3.1.1. "crontab -e"工作流 2 3.2. 问题 3 4. c ...
- web百度地图跨域问题
//根据经纬度获取地理位置信息function latOrLng(sLat, sLng) { var resUrl = 'http://api.map.baidu.com/geocoder/v2/?a ...
- 【repost】对JAVASCRIPT匿名函数的理解(透彻版)
Query片段: view plaincopy to clipboardprint? (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其 ...
- (贪心 or DP)Woodcutters -- Codefor 545C
http://codeforces.com/contest/545/problem/C Woodcutters time limit per test 1 second memory limit p ...
- Hdu1796 How many integers can you find 2017-06-27 15:54 25人阅读 评论(0) 收藏
How many integers can you find Time Limit : 12000/5000ms (Java/Other) Memory Limit : 65536/32768K ...
- 14.关键字final
在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了.final是java的关键字,它所表示的是“这部分是无法修改的”.不想被改变的原因有两个:效率.设计.使用到fi ...
- 调用azkaban接口,upload 本地zip文件
使用azkaban部署任务,可以将job文件打成zip包,通过web页面上传. 如图 但是当我们实践CI持续化部署的时候,要实现自动的部署上线. 这时就要调用azkaban提供的api. 地址如下:h ...
- Java框架知识点总结
一.Struts1的运行原理 在启动时通过前端总控制器ActionServlet加载struts-config.xml并进行解析,当用户在jsp页面发送请求被struts1的核心控制器ActionSe ...
- C# 开源仪表盘库—Agauge App
1.简介 有个叫A.J.Bauer 的大神在System.Windows.Forms.Control类的基础上建立了一个显示各种仪表盘的类. 英文版简介:C# Tu ...
- 自定义延时关闭弹窗,替代MesssageBox
1,新建一个窗体MessageForm,在里面加一个label控件和timer 2,代码如下: public partial class MessageForm : Form { int t; str ...