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)]
转载于:https://www.cnblogs.com/zhenniu/p/5037821.html
python自学笔记(三)python基本数据类型之列表list相关推荐
- pep8 python 编码规范_「原创」「python自学笔记」python编码规范
编码规范是学习一个语言前必须要了解的. Python采用PEP8作为编码规范,PEP是Python Enhancement Proposal(Python 增强建议书)的缩写,8代表的是Python代 ...
- 【Python自学笔记】Python基础知识
注释的分类 <1> 单行注释 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用 # 我是注释,可以在里写一些功能说明之类的哦print('hello world' ...
- Python自学笔记6:实操案例三(十进制转换二、八、十六进制),手机充值,计算能量消耗,预测未来子女身高
Python自学笔记6:实操案例三(十进制转换二.八.十六进制),手机充值,计算能量消耗,预测未来子女身高 杨淑娟老师网课传送门(非广告):https://www.bilibili.com/video ...
- Python自学笔记——视频课程来自小甲鱼零基础入门学习python
Python自学笔记 细枝末节 / 浮点除 // 地板除 字符串 apitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) ...
- Python(自学笔记1)
文章目录 一.数据类型 二.字符串 三.列表 四.用python写一个游戏 五.改进小游戏 一.数据类型 整型 布尔类型:true/false(bool) 浮点型 记法 ==Int()==括号内必须与 ...
- Python 自学笔记(教程)(七)
Python 自学笔记(教程)(七) 代码 代码讲解 import time time.sleep() random random.randint() % 传送门 代码 今天的笔记很简单,就用课程作业 ...
- Python 自学笔记----1.1实例与封装
Python 自学笔记----1.1实例与封装 背景描述 封装 类 实例 总结 代码地址 感悟 背景描述 初次了解了类与对象后,就可以深入学习一些面向对象的特性了:封装,继承,多态之 封装 类 首先还 ...
- python自学笔记
https://www.cnblogs.com/secondtonone1/p/6796323.html 恋恋风辰 python自学笔记(一) 我没学过python,通过网上和一些图书资料,自学并且记 ...
- Python自学笔记5:实操案例二(输出出版图书信息、《红楼梦》五位人名、图书音像勋章、身体指标)
Python自学笔记4:实操案例二(输出出版图书信息.<红楼梦>五位人名.图书音像勋章.身体指标) 1.输出出版图书信息 这个没啥难度,就是定义变量然后输出,注意调整格式就行 book_n ...
- 尚硅谷Python自学笔记
文章目录 尚硅谷Python自学笔记 计算基础知识 进制 文本文件和字符集 Python介绍 Python入门 Pytho基本语法 数值 字符串 对象(Object) 对象的结构 算数运算符 条件判断 ...
最新文章
- 编程之美-高效率安排见面会的方法整理
- 对象的继承关系在数据库中的实现方式和PowerDesigner设计
- GitHub 项目 增加成员
- mysql触发器删除同步_MySQL 触发器例子(两张表同步增加和删除)
- 线上分享 | 数据产品经理:如何突破现状,更进一层?
- 精通android(Pro Android 4)面试题总结(一)
- 关于Zipkin的几个问题
- 早起 - 对我影响最大的习惯
- 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator?
- KMP算法的浅显解释
- 3.15 Ext JS 之 Tooltip 的基本使用
- 数字图像处理与python实现 pdf_python数字图像处理实现直方图与均衡化
- 大型门户网站架构分析[转]
- Java项目毕业设计:基于springboot+vue的电影视频网站系统
- 0基础如何自学web前端?如何找工作?
- 牛客网 哈夫曼树 (大根堆、哈夫曼树)
- 计算机无法共享的原因,文件夹无法共享的原因及其解决办法
- Python-使用方法修改字符串的大小写
- PC版淘宝UWP揭秘
- 2022年山西省11地市高新技术企业申报奖励补助政策及认定条件流程
热门文章
- Latex学习笔记0
- C++ BigInt模板手打
- C语言:constkeyword、结构体
- Dominating Patterns
- Nokia House”或“NoHo
- 【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注...
- select报错 spark_使用spark-sql报错 “Metastore contains multiple versions”
- VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二
- 使用MQTT.fx(mqttfx软件)接入阿里云
- 3.IT-解决方案-3-Backup-Sql