python学习笔记:数据结构
python数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构。在python中,最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号---即元素的位置,也被为索引。序列概述python包含6种内建的序列例:[python]edward = ['Edward Gumby',42]索引序列中的所有元素都是有编号的----从0开始递增。[python]greeting = 'hello'greeting[0]输出:h分片与使用索引来访问呢单个元素类似,可以使用分片操作来访问一定范围内的元素。分片通过冒号相隔的两个索引来实现:[python]tag = '<a href="http://www.python.org">Python web sit</a>'tag[9:30]tag[32:-4]基本的列表操作1、改变列表:元素赋值[python]x = [1,1,1]x[1] = 2x输出:[1,2,1]2、删除元素[python]names = ['Alice','Beth','Cecil','Dee-Dee']del names[2]names输出:['Alice','Beth','Dee-Dee']3、分片赋值[python]name = list('Perl')namename[2:] = list('ar')name输出:['P','e','a','r']分片赋值语句可以在不需要替换任何原有元素的情况下插入新的元素[python]numbers = [1,5]numbers[1:1] = [2,3,4]numbers输出:[1,2,3,4,5]列表方法方法是一个与某些对象有紧密联系的函数,对象可能是列表、数字,也可能是字符串或者其他类型的对象。一般来说,方法可以这样进行调用:对象.方法(参数)除了对象被放置到方法名之前,并且两者之间用一个点号隔开,方法调用与函数调用很类似。1、append追加新的对象append方法用于在列表末尾追加新的对象:[python]lst = [1,2,3]lst.append(4)lst输出:[1,2,3,4]2、count统计某个元素次数count方法统计某个元素在列表中出现的次数[python]['to' 'be' 'or' 'not' 'to' 'be'].count('to')3、extend列表末尾一次性追加extend方法可以在列表的末尾一次性追加另一个序列中的多个值。(可以用新列表扩展原有的列表)[python]a = [1,2,3]b = [4,5,6]a.extend(b)a输出:[1,2,3,4,5,6]使用分片赋值来实现相同的结果:[python]a = [1,2,3]b = [4,5,6]a[len(a):] = ba输出结果一样4、index索引位置index方法用于列表中找出某个值第一个匹配项的索引位置[python]knights = ['We','are','the','knights','who','say','ni']knights.index('who')5、insert插入insert方法用于将对象插入列表中[python]numbers = [1,2,3,4,5,6,7]numbers.insert(3,'four')输出:[1,2,3,'four',5,6,7]与extend方法一样,insert方法的操作也可以用分片赋值来实现6、pop移除pop方易做图移除列表中的一个元素(默认是最后一个),并且返回该元素的值[python]x = [1,2,3]x.pop()3x[1,2]7、remove移除remove方法用于移除列表中某个值的第一个匹配项[python]x = ['to','be','or','not','to','be']x.remove('be')8、reverse反向reverse方法将列表中的元素反向存放9、sort排序sort方法用于在原位置对列表进行排序。在“原位置排序”意味着改变原列表的列表,从而让其中的元素能按一定的顺序排序,而不是简单地返回一个已排序的列表副本[python]x = [4,6,2,1,7,9]x.sort()x输出:[1,2,4,6,7,9]=====================[python]x = [4,6,2,1,7,9]y = x[:]y.sort()y输出和上面结果一样再次调用x[:]得到的是包含了X所有元素的分片=====================另一种获取已排序的列表副本的方法是,使用sorted函数[python]x = [4,6,,2,1,7,9]y = sorted(x.)10、高级排序如果希望元素能够按照特定的方式进行排序(而不是sort函数默认的方式,即根据python的默认排序规则按升序排列元素),那么可以通过compare(x,y)的形式自定义比较函数。compare(x,y)函数会在 x<y时返回负数,在x>y时返回正数,如果x=y则返回0。定义好函数之后,就可以提供给sort方法作为参数了。内建函数cmp提供了比较函数的默认实现方式:[python]cmp(42,32)输出:1cmp(99,100)输出:-1cmp(10,10)输出:0numbers = [5,2,9,7]numbers.sort(cmp)numbers[2,5,7,9]sort方法有另外两个可选的参数 -- key 和 reverse。 如果要使用它们,那么久要通过名字来指定[python]x = ['aardvark','abalone','acme','add','aerate']x.sort(key=len)x输出:['add','acme','aerate','abalone','aardvark']另一个关键字参数reverse是简单的布尔值(True或者是False)用来指明列表是否需要进行反向排序[python]x = [4,6,2,1,7,9]x.sort(reverse=True)x输出:[9,7,6,4,2,1]cmp,key,reverse参数都是可以用于sorted函数。在多数情况下,为cmp或key提供自定义函数是非常有用的元组:不可变序列元组与列表一样,也是一种序列。唯一的不同是元组不能修改。创建元组的语法很简单:如果你用逗号分隔了一些值,那么你就自动创建了元组。[python]1,2,3(1,2,3)元组也是通过圆括号括起来的:[python](1,2,3)空元组可以用没有包含内容的两个圆括号来表示:[python]()那么如何实现包括一个值的元组呢。实现方法---必须价格逗号,即使只有一个值[python]42,[python]3*(40+2,)输出:(42,42,42)1、tuple函数tuple函数的功能与list函数基本上是一样的:以一个序列作为参考并把它转换为元组。如果参数是元组,那么该参数就会被原样返回[python]tuple([1,2,3])补充:Web开发 , Python ,
上一个:python 系统学习笔记(一)
下一个:python学习笔记:使用字符串
- 更多python疑问解答:
- python 把图片转换成base64代码 python 把base64代码转换成图片
- 利用python进行网络图片下载 python批量下载远程图片
- 记录Python读写文件的代码和方法
- Python如何把图片转为Base64字符串
- python用requests.get批量下载网络远程图片的代码
- 疑难杂症,关于python与C#输出重定向
- 最近写的一个软件,对照下c#,c++,DELPHI,VB,易语言,PYTHON,PHP等执行效率
- 利用C#4.0调用IronPython脚本
- bat 执行定时python 打开url 谁搞过,帮忙看一下语句有什么问题
- 求助!在线等!python调用C#的.dll库
- Python 快速界面开发?求IDE和资料..中文的最好
- python如何读取XML文件中的
- .NET运行IronPython脚本错误
- 新手之前对编程无概念现在想转这行,想尽快入门,java ,python,.net、php、C之间如
- 新手之前对编程无概念现在想转这行,想尽快入门,java ,python,.net、php、C之间如