设为首页 收藏本站
查看: 792|回复: 0

[经验分享] .Net程序员之Python基础教程学习----列表和元组 [First Day]

[复制链接]

尚未签到

发表于 2015-4-22 10:55:37 | 显示全部楼层 |阅读模式
  一. 通用序列操作:
  其实对于列表,元组 都属于序列化数据,可以通过下表来访问的。下面就来看看序列的基本操作吧.
  1.1 索引:
  序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所以的范围是-N~N-1之间,超过这个范围就会提示 IndexError:  index out of range



>>> greeting ='Hello world'
>>> print greeting
Hello world
>>> print greeting[0],greeting[-1]
H d
  1.2 分片:
  A.简单的分片:
       分片是基于索引基础上的,可以理解为取一定区域的数据,和C#中的substring差不多,以及C#Linq提供的skip()和take()方法.
  Note:[A:B] A,B分别对应索引的下标,取值区域是[A,B)(学过数学的都知道不包含B). 注意意见是B必须大于A,否则输出为空,那么问题里了为何web[9:-1]有数据,请仔细想一想,其实-1的下标数据等价于m的下标12,12>9所以有数据. 那么对于web[9:-5] 就悲剧了.   



>>> web ='www.baidu.com'
>>> print web[4:9] #4对于的b
baidu
>>> print web[9:-5] #

>>> print web[9:-1]  #9对应的第二个'.'  -1对应的m
.co
  B.等差数列形式的分片:
  默认情况下是按照下标间隔为1的时候,进行获取的,其实可以通过第三个参数来进一步分割.[A:B:间隔数], 10个数字没两个取1次.
  



>>> number =[1,2,3,4,5,6,7,8,8,10]
>>> print number[0:10:2]
[1, 3, 5, 7, 8]
>>> print number[::-2]
[10, 8, 6, 4, 2]
>>> print number[::2]
[1, 3, 5, 7, 8]

  1.3 序列相加:
  同类型的可以想加,不同类型的会报错Type Error



>>> [1,2,3] + [4,5]
[1, 2, 3, 4, 5]
>>> [1,2,3] +['hello']
[1, 2, 3, 'hello']
>>> [1,2,3]+'hello'
Traceback (most recent call last):
File "", line 1, in
[1,2,3]+'hello'
TypeError: can only concatenate list (not "str") to list
>>>
  1.4 乘法:
     觉得Python的乘法很有意思,可以理解为对现有的数据的一种多个Copy.
  



>>> [1]*10
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> 'New '*10
'New New New New New New New New New New '
  1.5 有用方法.
  通过in可以Check元素是否存在,max,min,len,count分别获取最大值,最小值,长度,包含数量
  



>>> number =[1,2,2,3,3,4,5,7]
>>> print 'Max Number:' + str(max(number))
Max Number:7
>>> print '2的数量是:' + str(number.count(2))
2的数量是:2
>>> print 'number列表的长度是:' + str(len(number))
number列表的长度是:8
  二. 列表.
  
  列表可以理解为C语言中的链表.或者C#中的List,列表可以实现上面出现的通用序列号操作,可以对列表进行增,删,改,查,排序等方法
  2.1 列表的基础 



>>> print list('123') #功过【】可以将字符串转换为列表
['1', '2', '3']
>>> list1=[1,2,3] # 通过[]声明列表
>>> list2 = list(123) #123是整形,不存在索引,所以转换的时候报错了。

Traceback (most recent call last):
File "", line 1, in
list2 = list(123)
TypeError: 'int' object is not iterable
  2.2 列表的基本操作
        A 增,删,改



>>> numbers =[1,2,3,4,5]
>>> numbers[0]=5; #修改
>>> print numbers
[5, 2, 3, 4, 5]
>>> numbers.remove(5) #删除value值为5的
>>> print numbers
[2, 3, 4, 5]
>>> del numbers[0] #删除第一个元素
>>> print numbers
[3, 4, 5]
>>> numbers.append(7) #在尾部添加一个元素
>>> print numbers
[3, 4, 5, 7]
  B 分片赋值【神奇的分片操作】
  整体替换
    



>>> Greeting= [1,2,3,4,5]
>>> Greeting[1:] = [0,0]
>>> Greeting
[1, 0, 0]
  替换区间      



>>> Greeting= [1,2,3,4,5]
>>> Greeting[1:2]=[0,0,0]
>>> Greeting
[1, 0, 0, 0, 3, 4, 5]
  批量添加,用[0,0,0]替换[]        



>>> Greeting=[1,2,3,4,5]
>>> Greeting[1:1]=[0,0,0]
>>> Greeting
[1, 0, 0, 0, 2, 3, 4, 5]
  批量删除,用[]替换[2,3,4]   



>>> Greeting=[1,2,3,4,5]
>>> Greeting[1:4]=[]
>>> Greeting
[1, 5]
  Note:对于种种操作其实都可以理解为一个替换。
  2.3 列表的方法.  



>>> Number =[1,2,3,4,5]
>>> Number.extend([6,7,8])  #添加一个列表,必须是列表
>>> Number
[1, 2, 3, 4, 5, 6, 7, 8]
>>> Names =['Frank','Lock','Vincent','Tingna']
>>> Names.index('Lock')  #通过Index取下标
1
>>> Names.insert(2,'Hardy')
>>> Names
['Frank', 'Lock', 'Hardy', 'Vincent', 'Tingna']
>>> Names.pop()  #最有一个元素删除
'Tingna'
>>> Names
['Frank', 'Lock', 'Hardy', 'Vincent']
>>> Names.pop(0)  #踢出第一个元素
'Frank'
>>> Names
['Lock', 'Hardy', 'Vincent']
>>> Names.reverse()  #反序
>>> Names
['Vincent', 'Hardy', 'Lock']
>>> Names.sort() #从小到达
>>> Names
['Hardy', 'Lock', 'Vincent']
>>> Names.sort(key=len) #通过长度排序
>>> Names
['Lock', 'Hardy', 'Vincent']
>>> Names.sort(reverse=True) #从大到小
>>> Names
['Vincent', 'Lock', 'Hardy']
  三. 元组不可变序列
  通过()号声明,与list的区别在于一旦声明后不可变.
    



>>> tuple1 = (1,2,3)
>>> tuple1
(1, 2, 3)
>>> tuple(list('hello'))
('h', 'e', 'l', 'l', 'o')
>>>
  四. 总结
    



     本章总结了Python基础教程里面的列表和元组,其实整体来说和.net区别不算太大.比如奇妙的切片操作其实就是简化了.net里面的addrang,revomeall这些方法. 确实正如书里面所说Python可以用100行代码做到C语言1000行代码所需要完成的事情.
好了洗洗睡睡了.求明天公司年会能抽中Iphone土豪金大奖,哈哈哈.

[利用一个月的下班之余看完Python基础教程,完成基础教程学习博客系列.加油!]
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59556-1-1.html 上篇帖子: Python逐行读取文件内容 下篇帖子: python 教程 第一章、 简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表