Python列表与C#语言的相似度介绍

Python列表有不少的知识需要我们学习,下面我们就来看看相关的代码,只有不断的学习才能更好的进行相关的编写。Python列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构。

创新互联从2013年成立,先为海棠等服务建站,海棠等地企业,进行企业商务咨询服务。为海棠企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

列表用符号[]表示,中间的元素可以是任何类型(包括列表本身,以实现多维数组),元素之间用逗号分隔。取值或赋值的时候可以像C数组一样,按位置索引:

 
 
 
  1. # -*- coding: utf-8 -*-  
  2. array = [1,2,3]  
  3. print array[0]  
  4. #输出 1  
  5. array[0] = 'a'  
  6. print array  
  7. #输出 ['a', 2, 3] 

从上边的代码中你可能发现一个有趣的事情:在Python的列表中可以混合使用不同类型的数据,像['a', 2, 3]这样,不过我不建议你这样做,我觉得没什么好处(虽然个别场合下可能会比较方便)。#t#

另外还可以看到,列表是可变的序列,也就是说我们可以在“原地”改变列表上某个位置所存储的对象(的值)。

C#中ArrayList支持的多数操作(如追加、插入、删除、清空、排序、反转、计数等),Python中的list也都支持,同时list也支持“切片”这种操作。切片指的是抽取序列的一部分,其形式为:list[start:end:step]。其抽取规则是:从 start开始,每次加上step,直到end为止。默认的step为1;当start 没有给出时,默认从list 的第一个元素开始;当end=-1 时表示list 的最后一个元素,依此类推。一些简单的例子见下边代码:

 
 
 
  1. # -*- coding: utf-8 -*-  
  2. test = ['never', 1, 2, 'yes', 1, 'no', 'maybe']  
  3. print test[0:3] # 包括test[0],不包括test[3]  
  4. print test[0:6:2] # 包括test[0],不包括test[6],而且步长为2  
  5. print test[:-1] # 包括开始,不包括最后一个  
  6. print test[-3:] # 抽取最后3 个  

字符串、列表、元组都支持切片操作,这个很方便,应该学会熟练使用它。

最后,list是Python列表中最基础的数据结构,你可以把它当作链表、堆栈或队列来使用,效率还不错。Python中没有固定长度数组,如果你确实很在意性能,可以导入array模块来创建一个C风格的数组,它的效率很高,这里就不详细介绍了。

Python列表元组(tuple)

元组与列表非常相似,它是用()而不是[]括起来的序列。元组比列表的速度更快,但元组是一个不可变的序列,也就是与str一样,无法在原位改变它的值。除此之外,其他属性与列表基本一致。

元组定义的方法与列表类似,不过在定义只包含一个元素的元组时,注意在后边加一个逗号。请体会以下几句语句的差异:

 
 
 
  1. # -*- coding: utf-8 -*-   
  2. test = [0] #列表可以这样定义   
  3. print type(test) #输出   
  4. test = [0,] #也可以这样定义   
  5. print type(test) #输出   
  6. test = (0,) #元组可以这样定义   
  7. print type(test) #输出   
  8. test = (0) #但不能这样定义,Python会认为它是一个括号表达式 print type(test) #输出 
  9. test = 0, #也可以省略括号,但要注意与C的逗号表达式不同  
  10. print type(test) #输出 

利用元组的这个特性,可以简化Python变量的初始化过程,如:

 
 
 
  1. x,y,z=1,2,3 

还可以很简单地进行数据交换。比如:

 
 
 
  1. a = 1 
  2. b = 2 
  3. a,bb = b,a 

以上这类语句在Python列表中被广泛应用于变量交换、函数传值等应用,因此Python的解释器在不断对其进行优化,现在已经具备了相当高的效率。所以以上代码在Python 2.5以后的版本中,比tmp = a; a = b; b = tmp这种常规语句更快。

本文名称:Python列表与C#语言的相似度介绍
分享网址:http://www.gawzjz.com/qtweb2/news43/9293.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联