.Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作:
其实对于列表,元组 都属于序列化数据,可以通过下表来访问的。下面就来看看序列的基本操作吧.
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 "<pyshell#41>", line 1, in <module>
[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<Object>,列表可以实现上面出现的通用序列号操作,可以对列表进行增,删,改,查,排序等方法
2.1 列表的基础
>>> print list('') #功过【】可以将字符串转换为列表
['', '', '']
>>> list1=[1,2,3] # 通过[]声明列表
>>> list2 = list(123) #123是整形,不存在索引,所以转换的时候报错了。 Traceback (most recent call last):
File "<pyshell#53>", line 1, in <module>
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基础教程,完成基础教程学习博客系列.加油!]
.Net程序员之Python基础教程学习----列表和元组 [First Day]的更多相关文章
- .Net程序员之Python基础教程学习----字符串的使用 [Second Day]
在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本 ...
- .Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]
今天主要记录,Python中函数的使用以及异常处理. 一.函数: 1.函数的创建以及调用. def Add(val1,val2): return val1+val2; print Add( ...
- .Net程序员之Python基础教程学习----判断条件与循环[Fourth Day]
今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要 ...
- .Net程序员之Python基础教程学习----字典的使用 [Third Day]
今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相 ...
- python基础教程002_列表与元组
1.列表 定义: edward = ['Edward Gumdy',42] 描述edward姓名与年龄的列表 edward = [] 空列表 操作: 索引: greeting = 'hello' pr ...
- Python基础教程学习笔记:第一章 基础知识
Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...
- 【学习笔记】Python基础教程学习笔记
教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")----- ...
- Python基础:数据类型-列表与元组(6)
Python中数据结构主要有序列.集合和字典. 1. 通用序列操作 Python内置了多种序列,其中最常用的两种:列表和元组.另一种重要的序列是字符串. 列表和元组的主要不同在于:列表是可以修改的,而 ...
- Python基础教程学习(四)类的创建与继承
类中可以有方法,类外也可以有函数,其实类就是一种封装, Python中可以自己定义一个函数,一可以把这个函数在类中封装成一个方法, 其中的属性和方法自然就从父类中继承来了, 要想获得多个类的属性和功能 ...
随机推荐
- 20个最新的照片 PS 技巧,提升摄影水平
相信很多人都知道 Photoshop 在照片编辑方面的强大,所以几乎每张照片经过 PS 处理后都可以变成一个真正的杰作.这里分享的这组 Photoshop 教程可以帮助你学习到新的照片处理技术.你会发 ...
- [原创]html5游戏_贪吃蛇
代码随便写写,尚有许多不足,PC与手机端皆可运行 手机端滑屏操作,PC端方向键操作 疑问: 生成食物,与判断是否可以移动方面 有两种实现方式, 1.使用js内存,数组循环判断 2.使用dom的quer ...
- 【移动适配】移动Web怎么做屏幕适配(一)
屏幕适配是一个很容易被忽略的问题,但对于精益求精的产品而言,是必不可少的.对于Web开发的求职者而言,也是一个必需要理解清楚的经典问题 首发于微信公众号(啃先生) 壹 | Fisrt 移动端适配的是 ...
- 关于EJB的理解
这一段时间一直在北京面试,很多都有关EJB的相关问题,于是上网查了各种资料.所以,EJB到底是什么? 简而言之:EJB就是将已编写的软件中的业务类.不放到客户端软件中,而将其打包放入服务器中.以C/S ...
- C#开源项目汇总
Discuz nt: 一个开源的论坛项目.估计你现在逛过大大小小的论坛没有成百上千,也有几十个吧,其中是个论坛6个以上都是Discuz(以前大部分都是php版的),现 在官方也早就放出了DotNet( ...
- Web前端面试笔试题总结
最近一段时间要毕业了,忙着找工作,见过不少笔试面试题,自己总结了一些加上网上找的一些整合了一下.答案暂时都东拼西凑出来了,但是还是先不发出来,一方面是答案并不是唯一的并且自己的答案不能保证对,另一方面 ...
- select count(*)和select count(1)
一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的 假如表沒有主键(Primary key), 那么count(1)比count(*)快, 如果有主键的話 ...
- Android-SQLite版本问题
1. 用户 重来没有使用过该软件 不存在数据库,我们 1). 自动调用 void onCreate(SQLiteDatabase db) 方法 创建数据库 2).创建 表 , 3).给表插入初始化数据 ...
- android中实现跑马灯效果以及AutoCompleteTestView与MultiAutoCompleteTextView的学习
跑马灯效果 1.用过属性的方式实现跑马灯效果 属性: android:singleLine="true" 这个属性是设置TextView文本中文字 ...
- 移动Web开发(一)
1.浅谈Web标准 降低开发复杂度,覆盖的技术层面十分广泛,技术标准化. 以HTML为核心,扩展出几个大类的技术标准: a.程序访问: ECMAScript(ES) 3 . ES 5 . ES ham ...