列表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相关推荐

  1. pep8 python 编码规范_「原创」「python自学笔记」python编码规范

    编码规范是学习一个语言前必须要了解的. Python采用PEP8作为编码规范,PEP是Python Enhancement Proposal(Python 增强建议书)的缩写,8代表的是Python代 ...

  2. 【Python自学笔记】Python基础知识

    注释的分类 <1> 单行注释 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用 # 我是注释,可以在里写一些功能说明之类的哦print('hello world' ...

  3. Python自学笔记6:实操案例三(十进制转换二、八、十六进制),手机充值,计算能量消耗,预测未来子女身高

    Python自学笔记6:实操案例三(十进制转换二.八.十六进制),手机充值,计算能量消耗,预测未来子女身高 杨淑娟老师网课传送门(非广告):https://www.bilibili.com/video ...

  4. Python自学笔记——视频课程来自小甲鱼零基础入门学习python

    Python自学笔记 细枝末节 / 浮点除 // 地板除 字符串 apitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) ...

  5. Python(自学笔记1)

    文章目录 一.数据类型 二.字符串 三.列表 四.用python写一个游戏 五.改进小游戏 一.数据类型 整型 布尔类型:true/false(bool) 浮点型 记法 ==Int()==括号内必须与 ...

  6. Python 自学笔记(教程)(七)

    Python 自学笔记(教程)(七) 代码 代码讲解 import time time.sleep() random random.randint() % 传送门 代码 今天的笔记很简单,就用课程作业 ...

  7. Python 自学笔记----1.1实例与封装

    Python 自学笔记----1.1实例与封装 背景描述 封装 类 实例 总结 代码地址 感悟 背景描述 初次了解了类与对象后,就可以深入学习一些面向对象的特性了:封装,继承,多态之 封装 类 首先还 ...

  8. python自学笔记

    https://www.cnblogs.com/secondtonone1/p/6796323.html 恋恋风辰 python自学笔记(一) 我没学过python,通过网上和一些图书资料,自学并且记 ...

  9. Python自学笔记5:实操案例二(输出出版图书信息、《红楼梦》五位人名、图书音像勋章、身体指标)

    Python自学笔记4:实操案例二(输出出版图书信息.<红楼梦>五位人名.图书音像勋章.身体指标) 1.输出出版图书信息 这个没啥难度,就是定义变量然后输出,注意调整格式就行 book_n ...

  10. 尚硅谷Python自学笔记

    文章目录 尚硅谷Python自学笔记 计算基础知识 进制 文本文件和字符集 Python介绍 Python入门 Pytho基本语法 数值 字符串 对象(Object) 对象的结构 算数运算符 条件判断 ...

最新文章

  1. 编程之美-高效率安排见面会的方法整理
  2. 对象的继承关系在数据库中的实现方式和PowerDesigner设计
  3. GitHub 项目 增加成员
  4. mysql触发器删除同步_MySQL 触发器例子(两张表同步增加和删除)
  5. 线上分享 | 数据产品经理:如何突破现状,更进一层?
  6. 精通android(Pro Android 4)面试题总结(一)
  7. 关于Zipkin的几个问题
  8. 早起 - 对我影响最大的习惯
  9. 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator?
  10. KMP算法的浅显解释
  11. 3.15 Ext JS 之 Tooltip 的基本使用
  12. 数字图像处理与python实现 pdf_python数字图像处理实现直方图与均衡化
  13. 大型门户网站架构分析[转]
  14. Java项目毕业设计:基于springboot+vue的电影视频网站系统
  15. 0基础如何自学web前端?如何找工作?
  16. 牛客网 哈夫曼树 (大根堆、哈夫曼树)
  17. 计算机无法共享的原因,文件夹无法共享的原因及其解决办法
  18. Python-使用方法修改字符串的大小写
  19. PC版淘宝UWP揭秘
  20. 2022年山西省11地市高新技术企业申报奖励补助政策及认定条件流程

热门文章

  1. Latex学习笔记0
  2. C++ BigInt模板手打
  3. C语言:constkeyword、结构体
  4. Dominating Patterns
  5. Nokia House”或“NoHo
  6. 【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注...
  7. select报错 spark_使用spark-sql报错 “Metastore contains multiple versions”
  8. VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二
  9. 使用MQTT.fx(mqttfx软件)接入阿里云
  10. 3.IT-解决方案-3-Backup-Sql