Python 文档学习笔记

数据结构——列表

列表的方法

添加

  1. list.append(x) 添加元素

    • 添加一个元素到列表的末尾;相当于a[len(a):] = [x]
  2. list.extend(L) 并入一个列表
    • 将指定列表中的所有元素附加到另一个列表的末尾;相当于a[len(a):] = L
  3. list.insert(i,x) 指定位置i插入一个元素x
    • 在给定位置插入一个元素。第一个参数是插入的元素的索引,所以 a.insert(0, x) 在列表的最前面插入,a.insert(len(a), x) 相当于 a.append(x)。

移出

  1. list.pop([i]) 弹出//类比栈的操作

    • 删除列表中指定位置的元素并返回它。如果未指定索引,a.pop()将删除并返回列表中的最后一个元素。
  2. list.remove(x) 删除x
    • 删除列表中第一个值为 x 的元素。如果没有这样的元素将会报错

查找

  1. list.index(x) 返回x的地址

    * 返回列表中第一个值为 x 的元素的索引。如果没有这样的元素将会报错。

  2. list.count(x) 查x个数

    * 返回列表中 x 出现的次数。

排序

  1. list.sort(cmp=None, key=None, reverse=False)

    * 原地排序列表中的元素(参数可以用来自定义排序方法,参考sorted()的更详细的解释)。

  2. list.reverse()

    * 原地反转列表中的元素。

    * 注:原地排序就是指不申请多余的空间来进行的排序

计算

  • sum(l) 求和,如果可以元素之间可以求和的话

列表的使用举例

1. 用列表作为栈

        >>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]

2.函数式编程工具举例:filter()、map()和reduce()

  1. filter() 过滤

    • filter(function, sequence)返回的序列由function(item)结果为真的元素组成

      >>> def f(x): return x % 2 != 0 and x % 3 != 0
      >>> filter(f, range(2, 25))
      [5, 7, 11, 13, 17, 19, 23]
      >>> filter(lambda x : x % 2 != 0 and x % 3 != 0, range(2, 25))
      [5, 7, 11, 13, 17, 19, 23]
  2. map(function, sequence) 生成

    • 为序列中的每一个元素调用 function(item) 函数并返回结果的列表

      >>> def cube(x): return x*x*x
      >>> map(cube, range(1, 11))
      [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
  3. reduce(function, sequence) 迭代遍历运算

    • 只返回一个值,它首先以序列的前两个元素调用函数 function

      >>> def add(x,y): return x+y
      ...
      >>> reduce(add, range(1, 11))
      55

3.列表解析

  • 从一个序列的每个元素的操作结果生成新的列表

    squares = [x**2 for x in range(10)]

  • 这也相当于

    squares = map(lambda x: x**2, range(10)),但是更简洁和易读。

  • 在 python 3.0 中,解析语法也可以用来创建集合和字典:

    { sum(row) for row in matrix }

    { i:sum(M[i]) for i in range(3) }

python学习笔记整理——列表的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. Python学习笔记整理(五)Python中的列表.

    列表和字段,这两种类型几乎是Python所有脚本的主要工作组件.他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套. 一.列表 列表的主要属性: *任意对象的有序集合 从 ...

  3. python学习笔记整理——集合 set

    python学习整理笔记--集合 set 集合的用途:成员测试和消除重复的条目,进行集合运算 注意:花括号或set()函数可以用于创建集合. 注意:若要创建一个空的集合你必须使用set(),不能用{} ...

  4. python学习笔记整理——元组tuple

    Python 文档学习笔记2 数据结构--元组和序列 元组 元组在输出时总是有括号的 元组输入时可能没有括号 元组是不可变的 通过分拆(参阅本节后面的内容)或索引访问(如果是namedtuples,甚 ...

  5. python 学习笔记整理

    首先自我批评一下,说好的一天写一篇博客,结果不到两天,就没有坚持了,发现自己做什么事情都没有毅力啊!不能持之以恒.但是,这次一定要从写博客开始来改掉自己的一个坏习惯. 可是写博客又该写点什么呢? 反正 ...

  6. Python学习笔记整理总结【语言基础篇】

    一.变量赋值及命名规则① 声明一个变量及赋值 #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi name1="sol ...

  7. python学习笔记-列表和字典

    由于最近在看深度学习的代码,看到需要建立字典和列表来存储什么东西的时候,就想要去把字典和列表好好的了解清楚,其应用范围,差别,等等东西 首先我们来介绍,在python中存在如下的数据结构:列表list ...

  8. Python学习笔记整理总结【Django】【MVC/MTV/路由分配系统(URL)/视图函数 (views)/表单交互】

     一.Web框架概述  Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 ...

  9. python学习笔记(列表、元组、购物车实例)

    一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...

随机推荐

  1. Java 工程转 C#

    一.  前言 由于要用c#写点东西,但是我不会c#啊,所以就只能先用Java写好,然后再看看 Java 和C# 的差别,再一点一点转嘛,谁知道,google一下,有软件可以直接把 Java 工程转为C ...

  2. monkeyrunner之夜神模拟器的安装与使用(二)

    在上一篇文章-安卓开发环境搭建中,我们创建并启动了eclipse自带的安卓模拟器,该模拟器不仅启动慢,而且在使用过程中的反应速度也是出奇的差,经常出现卡机现象.为了解决这种现象,因此,我们又寻找到了更 ...

  3. [转]C#编程总结(三)线程同步

    本文转自:http://www.cnblogs.com/yank/p/3227324.html 在应用程序中使用多个线程的一个好处是每个线程都可以异步执行.对于 Windows 应用程序,耗时的任务可 ...

  4. [转]ANDROID NOTIFICATIONS USING CORDOVA AND IONIC

    本文转自:http://intown.biz/2014/04/11/android-notifications/ ANDROID NOTIFICATIONS USING CORDOVA AND ION ...

  5. c++形参改变实参(对指针的理解

    这几天搞逻辑比较晕,居然把指针的概念都混淆了. eg:int *p;//当然不对指针初始化在有些编译器是通不过编译的,比如VS(尤其是选中了SDL) 指针p是一个对象,定义开始没有分配了内存空间,只是 ...

  6. java 22 - 18 多线程之 线程的状态转换、线程组

    线程的状态转换图解:图片 线程的线程组: 线程组: 把多个线程组合到一起.    它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制. 首先创建一个Runnable的实现类 publi ...

  7. java 22 - 3 多线程的概述以及其它所涉及的东西(看)

    1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在. 2:什么是进程? 通过任务管理器我们就看到了进程的存在. 而通过观察,就可以发现只有运行的程序才会出现 ...

  8. HTML5+jquery整屏页面切换效果

    压缩包下载 演示地址 http://www.yyyweb.com/demo/page-transitions/

  9. Symbol ES6 新增的一种值类型数据,表示一种绝不重复的值

    let s1 = Symbol(33); let s2 = Symbol(33); alert(typeof(s1)); //数据类型判断 // alert(s1.toString()); //可把一 ...

  10. 045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)

    我们之前做的就是采购单的编辑,在采购单里面添加了药品,然后我们这篇文章要做的就是说提交这个采购单. 当我们创建完成采购单,确定采购单不再修改,需要提交采购单,由监管单位进行审核. 我们在提交这个采购单 ...