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. 零拷贝概念 -- linux内核

    零拷贝(zero-copy) 备快速网络接口的主要技术. 零拷贝技术通过降低或消除关键通信路径影响速率的操作,降低传输数据的操作系统开销和协议处理开销,从而有效提高通信性能,实现快速传输数据. 零拷贝 ...

  2. maven报错cannot change version of project facet

    用Eclipse创建Maven结构的web项目的时候选择了默认的catalog,由于这个catalog比较老,用的servlet还是2.3,而现在最少也是2.5,所以经常会出现问题,在Projecdt ...

  3. Flashback Drop实例操作

    1.Flashback DropFlashback Drop 是从Oracle 10g 开始出现的,用于恢复用户误删除的对象(包括表,索引等), 这个技术依赖于Tablespace Recycle B ...

  4. 《JavaScript 闯关记》之 DOM(下)

    Element 类型 除了 Document 类型之外,Element 类型就要算是 Web 编程中最常用的类型了.Element 类型用于表现 XML 或 HTML 元素,提供了对元素标签名.子节点 ...

  5. asp.net 内部重定向

    1. /* * 2. * Context.RewritePath() * 使用给定路径重写 URL.(内部重写) * 内部请求重写 */ public static void TestTwo() { ...

  6. BackgroundWorker 后台进程控制窗体label、richtextbook内容刷新

    昨天写了一个从文章中提取关键词的程序,写完处理的逻辑后又花了好几个小时在用户友好性上.加了几个progressBar,有显示总进度的.有显示分布进度的..因为程序要跑好几个小时才能执行好,只加个总进度 ...

  7. WinForm的TreeView实现Win7 Areo效果

    新建一个继承自TreeView的控件类,代码如下: using System; using System.Windows.Forms; using System.Drawing; using Syst ...

  8. Objective C—创建单例

    单例模式是在实际项目开发中用到比较多的一种设计模式,设计原理是整个系统只产生一个对象实例,通过一个统一的方法对外提供这个实例给外部使用. 在Java中,构造单例一般将类的构造函数声明为private类 ...

  9. NSData、NSString 、 NSFileManager

      1 NSData和NSMutableData的基本使用 1.1 问题 NSData类是IOS提供的用于以二进制的形式操作文件数据的类,NSData有两个常用的属性length和bytes,leng ...

  10. laravel 心得

    1.安装 使用composer安装laravel ,切换到你想要放置该网站的目录下,运行命令: composer create-project laravel/larevel project 4.1 ...