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. UDK——入门开发流程

    1.入门级參考UnrealScript代码 UnrealScript模仿JAVA,可是又有巨大的不同,主要是它本身具有完好的结构,貌似UDK把一切都安排好了,就像在盖楼一样.面对一幢已经完工的设计静止 ...

  2. android——仿微拍贷滑动圆形菜单

    一次偶然机会接触到微拍贷的app,瞬间被其圆形可滑动菜单吸引了.一直琢磨着给弄出来. 现在弄出来了.先看看效果吧 如果你也喜欢这个菜单.去我的github找源码吧.太忙了.没时间贴代码和讲解了. ht ...

  3. Android-----------国际化多国语言文件夹命名汇总

    *如果不区分地区,则不加后面的-rxx内容 Arabic, Egypt (ar_rEG) —————————–阿拉伯语,埃及      Arabic, Israel (ar_rIL) ———————— ...

  4. Git(Repo)常用命令收集

    (注意: 只记录工作中实际使用的命令) 同步android源码    repo sync:(可加-c,只取当前分支: 可加-j4,线程数量) 查看android源码下所有项目的git状态    rep ...

  5. sqlserver2012一直显示正在还原(Restoring)和从单用户转换成多用户模式(单用户连接中)

    如果不需要还原,则使用: restore database test with recovery如果只需要还原,则使用: restore database test with norecovery U ...

  6. Django auth 登陆后页面跳转至/account/profile,修改跳转至其他页面

    这几天在学习django,django功能很强大,自带的auth,基本可以满足用户注册登陆登出,简单的用户注册登陆系统使用django auth足矣.当然也不是拿来就能用的,需要自己写登陆页面的模板, ...

  7. php 解决乱码的通用方法

    一,出现乱码的原因分析 1,保存文件时候,文件有自己的文件编码,就是汉字,或者其他国语言,以什么编码来存储 2,输出的时候,要给内容指定编码,如以网页的形势输入时<meta http-equiv ...

  8. Java 学习 第二篇;面向对象 定义类的简单语法:

    1:基本知识 [public / protected / private] class 类名 { 零个到多个构造器定义; 零个到多个属性; 零个到多个方法; } 其中类中各个成员之间的顺序没有关系,且 ...

  9. Django的痛点

    如果一个html里面写了多个<a href = A.html > ,启动A.html也有这个<a herf = B.xml> 这个时候Django怎么访问这些url?

  10. 手机三种SIM卡 你所不知道的剪卡“秘密”

    SIM卡物理尺寸的发展是逐渐轻薄化,尺寸逐渐缩小的一个过程,最早手机中的卡都是2FF,2003年国际标准提出3FF,当前很多终端都使用这种形态的卡,4FF在2011年的国际标准会议中提出,2012年纳 ...