3. list 方法

列表类似于C++中的vector,C语言中的数组,用于存储顺序结构

创建列表(list)

a=[‘1‘,‘2‘]       用[]括起来,表示一个list,中间的各个元素可以是任何类型,用逗号分隔。

列表结构

list函数  拆分字符串成列表

>>>
list(‘chongshi‘)

[‘c‘, ‘h‘, ‘o‘, ‘n‘, ‘g‘, ‘s‘, ‘h‘, ‘i‘]

修改列表:元素赋值

>>> x
=[1,2,3,4]

>>> x[2]=18

>>> x

[1, 2, 18, 4]

删除元素

>>> names = [‘zhangsan‘,‘lisi‘,‘wangwu‘,‘sunliu‘]

>>> del names[2]

>>> names

[‘zhangsan‘, ‘lisi‘, ‘sunliu‘]

分片赋值:

>>> name =
list(‘huzi‘)

>>> name

[‘h‘, ‘u‘, ‘z‘, ‘i‘]

>>> name[2:]=list(‘dazhi‘)

>>> name

[‘h‘, ‘u‘, ‘d‘, ‘a‘, ‘z‘, ‘h‘, ‘i‘]

name的内容为“huzi” ,从第3个字符(2)开始替换,用“da”替换“zi”并被扩容“zhi”,所以新的name的内容为“hudazhi”。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

列表方法

对象.方法 (参数)

1、append

append方法用于在列表末尾追加新的对象:

>>> abc = [1,2,3]

>>> abc.append(4)

>>> abc

[1, 2, 3, 4]

2、count

count方法统计某个元素在列表中出现的次数:

>>>
[‘to‘,‘be‘,‘or‘,‘not‘,‘to‘,‘be‘,].count(‘to‘)

2

>>> x = [[1,2],1,1,[2,1,[1,2]]]

>>> x.count(1)

2

>>> x.count([1,2])

1

3、extend

extend方法可以在列表的末尾一次性追加另一个序列中的多个值。用新列表扩展原有列表:

>>>
a = [1,2,3]

>>> b = [4,5,6]

>>> a.extend(b)

>>> a

[1, 2, 3, 4, 5, 6]

4、index

index 方法用于从列表中找出某个值第一个匹配项的。

>>>
knights = [‘We‘,‘are‘,‘the‘,‘kninghts‘,‘who‘,‘say‘,‘ni‘]

>>> knights.index(‘who‘)

4

>>> knights[4]

‘who‘

5、insert

insert 方法用于将对象插入到列表中:

>>> numbers = [1,2,3,5,6,7]

>>> numbers.insert(3,‘four‘)      #插在前面

>>> numbers

[1, 2, 3, ‘four‘, 5, 6, 7]

6、pop

pop 方法会移除列表中一个元素(默认是最后一个),并且返回该元素的值:

>>>
x = [1,2,3]

>>> x.pop()

3

>>> x

[1, 2]

>>> x.pop(0)

1

>>> x

[2]

模拟压栈、出栈

>>>
a=[]

>>> a.append(0)       #压栈

>>>
a.append(1)

>>>
a.append(2)

>>>
a

[0, 1, 2]

>>> a.pop()                 #出栈

2

>>>
a.pop()

1

>>>
a.pop()

0

模拟队列

>>> a.insert(0,0)   #入队

>>>
a.insert(0,1)

>>>
a.insert(0,2)

>>>
a

[2, 1, 0]

>>> a.pop()            #出队

0

>>>
a.pop()

1

>>>
a.pop()

2

>>>
a

[]

或者:

>>> a.append(0)        #入队

>>>
a.append(1)

>>>
a.append(2)

>>>
a

[0, 1, 2]

>>> a.pop(0)               #出队

0

>>>
a.pop(0)

1

>>>
a.pop(0)

2

>>>
a

[]

7、remove

remove 方法用于移除列表中某个值的第一个匹配项:  #没有返回值,和pop相反

>>>
x = [‘to‘,‘be‘,‘or‘,‘not‘,‘to‘,‘be‘]

>>> x.remove(‘be‘)

>>> x

[‘to‘, ‘or‘, ‘not‘, ‘to‘, ‘be‘]

8、reverse

revers方法将列表中的元素反向存放

>>>
x = [1,2,3]

>>> x.reverse()

>>> x

[3, 2, 1]

也可以这样实现:

>>> list(reversed(x))

[3,
2, 1]

9、sort

sort方法用于在原位置对列表进行排序。在“原位置排序”改变原来的列表,从而让其中的元素能按一定的顺序排列(没有返回值)。

>>>
x = [4,6,2,1,7,9]

>>> x.sort()

>>> x

[1, 2, 4, 6, 7, 9]

>>> x = [4,6,2,1,7,9]

>>> y = x                    #副本排序

>>> y.sort()

>>>
y

[1,
2, 4, 6, 7, 9]

#另外一种副本排序方法

>>>
x = [4,6,2,1,7,9]

>>> y = sorted(x)

>>>
y

[1,
2, 4, 6, 7, 9]

>>>
x

[4,
6, 2, 1, 7, 9]

sorted可用于任何序列

>>>
sorted(‘python‘)

[‘h‘, ‘n‘,
‘o‘, ‘p‘, ‘t‘, ‘y‘]

10、高级排序

list去重:   {}.fromkeys(list).keys() 

list字符排序: list.sort(key=int)   list.sort(key=len)   #指定排序键类型

list.sort(reverse=True)                         #反向排序

来自为知笔记(Wiz)

时间: 06-13

3. list 方法的相关文章

Unity 崩溃问题解决方法——之一

友情提示:工作随记,不喜勿喷 注意:文艺青年可以略过,暴力青年欢迎采纳 Library文件夹 Unity每次编译都会生成这个东西,不用担心丢失的问题.所以,干掉他! 选中 + Delete   或者  选中 + Shift  + Delete 网上看了很多方法,就觉得这个简单,粗暴,是我喜欢的类型. 优点:上面说了 缺点:如果工程过大,重新编译时间会比较长.(但是对于查Log日志来说,相对快点)

Java TM 已被阻止,因为它已过时需要更新的解决方法

公司的堡垒机需要通过浏览器登陆,且该堡垒机的网站需要Java的支持,最近通过浏览器登陆之后总是提示"java TM 已被阻止,因为它已过时需要更新的解决方法"导致登陆之后不能操作, 但是操作系统中确实已经安装了比较新的JDK,安装的JDK版本是jdk-7u67-windows-i586,因为太烦人,所以决定搞清楚报错的原因,一劳永逸,彻底解决这个问题 准备工作:安装JDK,安装版本jdk-7u67-windows-i586.exe,因为机器的Eclipse还依赖64位的JDK,所以另安

win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法

今天与大家分享一个自己的学习笔记,希望能给遇到同样问题的人带来帮助. 不知道大家在win7 64位系统下用 PB连接oracle数据库时,是否遇到过“oracle library oci.dll could not be loaded”问题. 今天,在win7 64位系统下用 PB连接oracle数据库时,一直出现上述错误,在百度上找了很久,都没有找到一个完整的解决方案,咨询了很多人,(他们都说是我的PB和oracle没装好,但我装的时候没出现任何问题,一切都很顺利,而且PB和oracle都能正

C#与数据库访问技术总结(八)之ExecuteNonQuery方法

ExecuteNonQuery方法 ExecuteNonQuery方法主要用来更新数据. 通常使用它来执行Update.Insert和Delete语句. 该方法返回值意义如下: 对于Update.Insert和Delete语句,返回值为该命令所影响的行数. 对于所有其他类型的语句,返回值为-1. Command对象通过ExecuteNonQuery方法更新数据库的过程非常简单,需要进行的步骤如下: (1)创建数据库连接. (2)创建Command对象,并指定一个SQL Insert.Update

android开发之onCreate( )方法详解

onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Google Android Developers官网上的解释: onCreate(Bundle) is where you initialize your activity. Most importantly, here you will usually call setContentView(int) with a layout resource d

MAC平台下Xcode配置使用OpenCV的具体方法 (2016最新)

1.序言: 1.1 背景 本人小白一枚,不过因为最近在从事机器视觉方面的工作,所以接触到OpenCV. 因为工作需求,本人要在MAC端使用OpenCV实现一些视觉功能,配置环境成了最大的阻碍,网上查了很多相关资料和博客,都因为版本环境问题屡试屡败,不过经历重重尝试,笔者最终还是配置成功并运行了自己的源码.当然成功的关键还是因为笔者站在了巨人的肩膀上,借鉴了很多网上的教程,为了不误导大家配置的过程,参考文章的地址统一放在文章里,望各位大大看见之后能够理解,废话不说进入正题. 1.2 环境说明 如果

正则化方法:L1和L2 regularization、数据集扩增、dropout

本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习/深度学习算法中常用的正则化方法.(本文会不断补充) 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现如下图所示,随着训练过程,网络在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大--因为训练出来的网络过拟合了训练集,对训练集外的数据却不work

mac上 go-delve 安装出现The specified item could not be found in the keychain 解决方法

安装go语言的编译环境,在安装到 delve时候出现如下错误: If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/go-delve/homebrew-delve/issues These open issues may also help: Upgrade to delve fails https://github.com/go-delve/homebr

初识运维3--在虚拟机中安装Linux发行版系统(CentOS)的方法

在讲Linux系统发行版本的安装过程之前,先大略说明一下虚拟化. 虚拟化:将底层硬件资源抽象为用户更容易读懂和使用的逻辑抽象层的技术. 最早由IBM提出,现使用率较高的虚拟化软件平台有三类:VMware workstation.VirtualBOX.HyperV.在这里使用VMware workstation作为例子讲解说明安装过程. 虚拟化网络: 桥接模式:让物理机和虚拟机利用物理网络接口完成通信.虚拟机可以访问互联网. 仅主机模式:让虚拟机和物理机利用被虚拟出来的VMnet1网络接口完成通信

《个人-GIT使用方法》

本文章转载于:http://blog.csdn.net/gemmem/article/details/7290125 1. Git概念 1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制..git目录位于工作目录内. 1) 工作目录:用户本地的目录: 2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域