2016/1/27学习内容

第二章 Python序列-list

list常用操作

list.append(x)

list.extend(L)

list.insert(index,x)

list.remove(x)

删除在列表中首次出现的指定元素x

list.pop([index])

删除并返回列表对象指定位置的元素,默认为最后一个元素

list.clear()

list.index(x)

返回第一个值为x的元素的下标,若不存在值为x的元素则抛出异常

list.count(x)

返回指定元素x在列表中出现的次数

list.reverse()

对列表元素进行原地翻转

list.sort()

对列表元素进行原地排序

list.copy()

对列表对象的浅复制.

append比’+’运算快很多

使用乘法扩展列表对象

千万要小心

当使用*运算符将包含列表的列表进行重复并创建新列表时,并不创建元素的复制,而是创建已有对象的引用。因此,当修改其中一个值时,对应的引用也会被修改。

例如:

 x=[[1,2,3]]*3;
x[0][0]=10;
print(x);
[[10, 2, 3], [10, 2, 3], [10, 2, 3]]

成员资格判断

in

not in

切片

浅赋值

是切割后创建一片新的内存放置

利用切片原地操作

x=[1,2,3]*3;
x[1:2:]=[10];
print(x);
x[::2]=[0]*((len(x)+1)//2);
print(x);
[1, 2 , 3, 1, 2, 3, 1, 2, 3]
[1, 10, 3, 1, 2, 3, 1, 2, 3]
[0, 10, 0, 1, 0, 3, 0, 2, 0]

也可以结合del操作

x=[1,2,3]*3;
del x[::2];
print(x);

列表排序

random.shuffle(list)

打乱lsit顺序

逆序

list.sort(reverse=Ture)

自定义排序 以后学习

sorted(list,reverse=Ture)

内联的逆序排序

enumerate(列表)

枚举列表,元组或其他可迭代对象的元素,返回枚举类型,枚举对象中每个元素是包含下标和元素值的元组。对字典得到的是建值。

x=[1,2,3,4,5,6,7];
for i,value in enumerate(x):
print(i,value);

列表推倒式

  • [Expression for Variable in list]
  • 也就是:[ 表达式 for 变量 in 列表]
  • 如果需要加入if条件语句则是:[表达式 for 变量 in 列表 if 条件]
  • 如果表达式中需要if else 语句则是 [表达式 if 条件 else 表达式 for 变量 in 列表 if 条件]
  • 如果表达式有两个元素 语句则是[(表达式,表达式) for x in 列表 for y in 列表 if 条件]

几个精彩的用法

列表推导实现嵌套列表的平铺

vec = [[1,2,3],[4,5,6],[7,8,9]]
a=[num for elem in vec for num in elem]
print(a)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

列表推倒实现矩阵转置

matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]];
[[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

使用列表推导式生成100以内的所有素数

import math
[p for p in range(2,100) if 0 not in [p%d for d in range(2,int(math.sqrt(p))+1)]]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

[python笔记][第二章Python序列-list]的更多相关文章

  1. [Python笔记][第二章Python序列-复杂的数据结构]

    2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...

  2. [Python笔记][第二章Python序列-tuple,dict,set]

    2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...

  3. Python笔记·第二章—— Python的编码问题(一)

    一.什么是编码 可以说,计算机是一个即聪明又笨蛋的家伙.说它聪明,是因为他可以做很多事情,它的强大无需多说,大家应该都有所了解以及感受.但是为什么说它又是个笨蛋呢,因为我们在电脑上写出的每一个字,保存 ...

  4. [Python笔记][第一章Python基础]

    2016/1/27学习内容 第一章 Python基础 Python内置函数 见Python内置函数.md del命令 显式删除操作,列表中也可以使用. 基本输入输出 input() 读入进来永远是字符 ...

  5. Python笔记·第一章—— Python基础(一)

    一.Python的简介 1.Python的由来与版本 1.1 python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文 ...

  6. Python自学:第二章 Python之禅

    >>print import <Python之禅>,提姆·彼得斯著 美胜于丑. 显式优于隐式. 简单胜于复杂. 复杂总比复杂好. 平的比嵌套的好. 稀疏胜于稠密. 可读性计数. ...

  7. 第二章Python入门

    第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...

  8. Android群英传笔记——第二章:Android开发工具新接触

    Android群英传笔记--第二章:Android开发工具新接触 其实这一章并没什么可讲的,前面的安装Android studio的我们可以直接跳过,如果有兴趣的,可以去看看Google主推-Andr ...

  9. 《DOM Scripting》学习笔记-——第二章 js语法

    <Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...

随机推荐

  1. 一个用 Cumulative Penalty 培训 L1 正规 Log-linear 型号随机梯度下降

      Log-Linear 模型(也叫做最大熵模型)是 NLP 领域中使用最为广泛的模型之中的一个.其训练常採用最大似然准则.且为防止过拟合,往往在目标函数中增加(能够产生稀疏性的) L1 正则.但对于 ...

  2. boost库在工作(39)网络UDP异步服务端之九

    前面创建的UDP服务器和客户端,都是同步的方式,也就是说当接收数据时,不能参与别的事情执行的.如果在一个只有界面线程的程序里,又不想创建多线程,导致复杂程度的增加,在这种情况之下,我们还有一个方案可以 ...

  3. [CSAPP笔记][第一章计算机系统漫游]

    计算机系统漫游 我们通过追踪hello程序的生命周期来开始对系统的学习—–从它被程序员创建,到系统上运行,输出简单的消息,然后终止.我们沿着这个程序的生命周期,简要介绍一些逐步出现的概念,专业术语和组 ...

  4. linux学习记录 常用指令大全

    1.开启关闭服务器(即时生效): service iptasbles start service iptasbles stop 2.在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysc ...

  5. DataList、Repeater、GridView中的Checkbox取值问题

    先看页面代码 <asp:DataList id="DataList1" runat="server" Width="100%" Rep ...

  6. ext.net中ComboBox空间实现模糊查询

    ComboBox中的属性添加Mode="Local"可以实现第一个字的模糊查询但是搜索中间的字无法实现 现提供一下方法使用正则表达式实现全模糊查询 <ext:ComboBox ...

  7. c3p0连接数据库

    <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-con ...

  8. Mybatis Generator最完整配置详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  9. 使用BOOST.SPIRIT.X3的RULE和ACTION进行复杂的语法制导过程

    Preface 上一篇简述了boost.spirit.x3的基本使用方法.在四个简单的示例中,展示了如何使用x3组织构造一个语法产生式,与源码串匹配并生成一个综合属性.这些简单的示例中通过组合x3库中 ...

  10. GDI 开发的准备工作

    1 需要的链接库和头文件 大部分函数在 Gdi.dll 和 Gdi32.dll 提供.相关的函数接口和结构都在 Wingdi.h 文件中(如果工程中已包含 Windows.h 就不需要再包含了,因为 ...