python自学笔记(三)python基本数据类型之列表list
列表list特性概括
1、有序集合
2、通过偏移来索引,从而读取数据
3、支持嵌套
4、可变的类型(dict 字典也是可变的)
(1)切片
a = [1,2,3,4,5,6,7]
正向索引 a[0:4:1] 1是步长
反向索引 a[-1:-4:-1]
默认索引 a[1::2] 从第二位到最后 步长是2
(2)添加操作
a = [1,2,3]
b = [4,5,6]
1. 用 "+"
a + b = [1,2,3,4,5,6]
2.Extend 接收参数并将该参数的每个元素都添加到原有的列表中(从list最后一个元素开始),原地修改列表而不是新建一个列表(id地址值不变,不会分配新内存空间)
3.Append 添加任意对象到列表的末端,同Extend 也是原地修改,不分配新内存
4.Insert 插入任意对象到列表中 可以控制插入位置 例如:a.insert[a,'ab']
(3)修改:修改列表本身只需要直接复制操作就行
a = [1,2,3]
a[0] = 'haha'
(4)删除
1.Del 通过索引删除指定位置的元素
del a[0]
del a 删除列表对象的引用
del a[:]清空列表对象里的元素
2.Remove 移除列表中指定值的第一个匹配值,如果没找到会报错
a.remove(5) 5值,不是索引
3.Pop返回最后一个元素,并从list中删除它
a.pop() -->返回list最后一个值
(5)成员关系
in、not in 可以判断一个元素是否在列表里,返回一个bool类型,元素在列表就返回true,否则返回false
a = [1,2,3]
2 in a -->true
5 not in a -->true
(6)列表推导式
表达式 迭代变量 迭代器
[expr for iter_var in iterable]
1.首先迭代iterbale里所有内容,每一次迭代,都把iterbale里相应内容放在iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个list列表。
例如:生成一个包含1到10的列表
方法1:[x for x in range(1,11)]
方法2:range(1,11,1)
表达式 迭代变量 迭代器 条件语句
[expr for iter_var in iterable if cond_expr]
2.加入了判断语句,只有满足条件的内容才吧iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
练习:
1、1-10奇数列表
方法1:range(1,11,2)
方法2:[x for x in range(1,11) if x % 2 == 1]
(7)排序和翻转sort/reverse 这2个方式直接修改原列表,它的返回值为None,所以
a = [33,11,58,65]
b = a.sort()
print b -->None
a已经翻转 print a-->[11,33,58,65]
再调用 a.reverse() 列表第0位元素与最后一位对调,一次类推,第1位元素与倒数第二位元素对调
print a-->[65,58,33,11]
(8)内置list方法
返回一个列表,参数是可迭代对象,里面输出的内容还是保持了传入的可迭代对象的元素和顺序,如果参数为空,则返回一个空的列表。
a = "asd"
list(a) -->['a','s','d']
list((1,2))-->[1,2]
(9)xrange和range的具体区别
1.range直接生成一个列表对象,xrange是生成一个xrange对象
2.xrange(开始,结束,步长)它生成了一个xrange对象 步长默认为1,可省略
a = xrange(1,10)
print a-->xrange(1,10)
b = range(1.5)
print b-->[1,2,3,4]
用法:
1.当我们需要操作一个非常大的数据,而且内存比较吃紧的时候,我们可以用xrange来操作,节省内存
2.xrange一般用在循环里,比如我们只需要操作部分数据的话,而不是返回全部元素来完成操作,推荐用xrange
例如: for m in range(1000) -->[0-999] 生成一个list对象,并生成多个元素
for m in xrange(1000) -->生成一个xrange对象,只生成0-10共11个元素,然后组合成对应的值
生成字符串列表 ['this %s' %a for a in xrange(100)]
生成元素元组列表 [(x,y) for x in range(2) for y in range(2)] -->[(0,0),(0,1),(1,0),(1,1)]
python自学笔记(三)python基本数据类型之列表list的更多相关文章
- Python学习笔记(三)Python的list和tuple
list list类似其他语言中的数组,是一种有序的集合,可以随时添加和删除其中的元素. 使用len()函数可以获得list元素的个数. list的索引从0开始,当超出范围时会报IndexError错 ...
- Python自学:第三章 倒着打印列表
# -*- coding: GBK -*- #reverse: 相反的 cars = ["bmw", "audi", "toyota", & ...
- python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...
- python学习笔记(二)— 数据类型
一.变量.数据类型 1.计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...
- python学习笔记(三)-列表&字典
列表: 一.列表操作"""Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一 ...
- python自学笔记(一)
我没学过python,通过网上和一些图书资料,自学并且记下笔记. 很多细节留作以后自己做项目时再研究,这样能更高效一些. python基础自学笔记 一.基本输入和输出 pthon3.0用input提示 ...
- python自学笔记(一)简单了解python
脚本解释型语言的内部机制 python先将脚本编译成字节码文件(pyc,pyo) python虚拟机解释并运行字节码文件 编译型语言的内部机制 先将源代码编译成机器码(机器能读懂的代码),生成可执行文 ...
- 如何深入系统的学习一门编程语言——python自学笔记
前言 最早接触python的时候,他并没有现在这么火,我也没把他太当回事,那时候我对python的印象就是给运维人员使用的一门很古老的语言,显然随着tensorflow(以下简称tf)的兴起,pyth ...
- Python学习(三) —— 基本数据类型
基本数据类型 一.整数类型(int) 32位机器,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 64位机器,整数的位数是64位,取值范围位 ...
- Python学习笔记2:基本数据类型
Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象 ...
随机推荐
- python <tab>自动补全
1.获取python目录[我使用的是64位ubuntu系统] [~$]python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] ...
- 最终有SpringMvc与Struts2的对照啦
眼下企业中使用SpringMvc的比例已经远远超过Struts2,那么两者究竟有什么差别,是非常多刚開始学习的人比較关注的问题,以下我们就来对SpringMvc和Struts2进行各方面的比較: 1. ...
- 全球最快的JS模板引擎
废话不多说,先上测试: 亲测请访问:[在线测试地址]单次结果不一定准确,请多测几次. tppl 的编译渲染速度是著名的 jQuery 作者 John Resig 开发的 tmpl 的 43 倍!与第二 ...
- HTML5的绘图的支持
一.简单介绍canvas元素 <canvas.../>是HTML5新增的一个元素,该元素用于绘制图形.实际上<canvas../>只是相当于一张画布. 它除了可以指定通用属性外 ...
- Windows Server 2003 安装Sql Server 2005 问题处理
安装途中遇到: 问题1.无法找到产品Microsoft SQL Server Native Client的安装程序包.请使用安装包sqlncli.msi的有效副本重新安装? 答:安装SQL Serve ...
- NOPI导出Excel
NOPI导出Excel /// <summary> /// 导出的方法 Excel样式 /// </summary> /// <param name="ds&q ...
- Infragistics的介绍以及在ASP.net中使用的总结
Infragistics系列控件是一套很好,很强大的控件,.感觉很好..现在自己做项目也用..却发现网上没有一套中文的教程,中文资料都很少..在这里就把自己的研究心得写下来... 首先安装,一步一步装 ...
- svn的使用总结(待补充)
1.直接选择文件右键--diff比较的是(本地上次与svn同步的文件)与工作区的比较.(每次更新后,会自动备份本次更新的文件) 2.若是要跟 svn最新版本比较的话,可以选择版本找到对应文件,点击sh ...
- Spring——AOP(面向切面编程)@AspectJ注解方式
一.什么是AOP? AOP: (Aspect Oriented Programming)即面向切面编程. 试想这样的场景:项目中需要在业务方法执行完打印日志记录.最笨的办法就是在每个方法核心业务执行完 ...
- session.createQuery()不执行和java.lang.reflect.InvocationTargetException
今天写SSH的工程的时候,执行到一个DAO中的Query query = session.createQuery(hql)的时候,没有成功执行,直接跳到了finally,然后前台报了500和java. ...