列表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的更多相关文章

  1. Python学习笔记(三)Python的list和tuple

    list list类似其他语言中的数组,是一种有序的集合,可以随时添加和删除其中的元素. 使用len()函数可以获得list元素的个数. list的索引从0开始,当超出范围时会报IndexError错 ...

  2. Python自学:第三章 倒着打印列表

    # -*- coding: GBK -*- #reverse: 相反的 cars = ["bmw", "audi", "toyota", & ...

  3. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  4. python学习笔记(二)— 数据类型

    一.变量.数据类型 1.计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...

  5. python学习笔记(三)-列表&字典

    列表: 一.列表操作"""Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一 ...

  6. python自学笔记(一)

    我没学过python,通过网上和一些图书资料,自学并且记下笔记. 很多细节留作以后自己做项目时再研究,这样能更高效一些. python基础自学笔记 一.基本输入和输出 pthon3.0用input提示 ...

  7. python自学笔记(一)简单了解python

    脚本解释型语言的内部机制 python先将脚本编译成字节码文件(pyc,pyo) python虚拟机解释并运行字节码文件 编译型语言的内部机制 先将源代码编译成机器码(机器能读懂的代码),生成可执行文 ...

  8. 如何深入系统的学习一门编程语言——python自学笔记

    前言 最早接触python的时候,他并没有现在这么火,我也没把他太当回事,那时候我对python的印象就是给运维人员使用的一门很古老的语言,显然随着tensorflow(以下简称tf)的兴起,pyth ...

  9. Python学习(三) —— 基本数据类型

    基本数据类型 一.整数类型(int) 32位机器,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 64位机器,整数的位数是64位,取值范围位 ...

  10. Python学习笔记2:基本数据类型

    Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象 ...

随机推荐

  1. Android Popupwindow 拖动

    版本号:1.0 日期:2014.4.29 版权:© 2014 kince 转载注明出处 关于View的拖动大家应该比較了解了,比方对一个控件IamgeView拖动,或者一个视图View拖动,实现方式也 ...

  2. [置顶] android 自定义圆角ImageView以及锯齿的处理

    看到很多人开发过程中要使用圆角图片时,解决方法有: 1.重新绘制一张图片 2.通过布局来配置 3.通过重写View来实现 其中1,2在这里就不讲了,重点讲讲方法三的实现. 实现一:通过截取画布一个圆形 ...

  3. Div实现滚动条效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. “Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象

    目录: “Zhuang.Data”轻型数据库访问框架(一)开篇介绍 “Zhuang.Data”轻型数据库访问框架(二)框架的入口DbAccessor对象 先来看一段代码 DbAccessor dba ...

  5. 理解ROS的参数

    记住每次操作之前都要在一个单独的终端中运行ros的核心. roscore rosparam命令允许你在ROS的参数服务器上操作和存储数据,参数服务器可以存储整数,浮点数,布尔类型,字典,列表.ROS使 ...

  6. leetcode find median sorted arrays python

    # @link http://www.cnblogs.com/zuoyuan/p/3759682.html class Solution(object): def findMedianSortedAr ...

  7. codeforces 401D. Roman and Numbers 数位dp

    题目链接 给出一个<1e18的数, 求将他的各个位的数字交换后, 能整除m的数的个数. 用状态压缩记录哪个位置的数字已经被使用了, 具体看代码. #include<bits/stdc++. ...

  8. 为SQL Server 增加链接到SQL Server 的链接服务器

    整体的分析一下好有一个思路.我们的目的是完成一个到远程服务器的链接. 第一:我们要知道这台服务器在哪(也就是要知道它的IP地址,如果是在同一个网络中知道它的计算机名也是可以的.因为一台服务器上可以安装 ...

  9. linux服务器在运行210天左右宕机

    减小字体 增大字体 作者:错新网  来源:www.cuoxin.com  发布时间:2014-2-25 19:21:32 错新网讯   最近几天,一批linux线上的服务器接连宕机,当时以为是硬件问题 ...

  10. 阿里云ECS每天一件事D8:nginx1.7整合php5.4

    nginx本身的并不能解析php或者jsp,要转发给后端的php或者tomcat以及其他类似的应用程序服务器来提供服务. 首先我需要完成的配置是实现与php的整合,典型的配置信息如下: server ...