一. 通用序列操作:

     其实对于列表,元组 都属于序列化数据,可以通过下表来访问的。下面就来看看序列的基本操作吧.

    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]的更多相关文章

  1. .Net程序员之Python基础教程学习----字符串的使用 [Second Day]

         在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本 ...

  2. .Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]

       今天主要记录,Python中函数的使用以及异常处理. 一.函数:    1.函数的创建以及调用. def Add(val1,val2): return val1+val2; print Add( ...

  3. .Net程序员之Python基础教程学习----判断条件与循环[Fourth Day]

        今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要 ...

  4. .Net程序员之Python基础教程学习----字典的使用 [Third Day]

      今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相 ...

  5. python基础教程002_列表与元组

    1.列表 定义: edward = ['Edward Gumdy',42] 描述edward姓名与年龄的列表 edward = [] 空列表 操作: 索引: greeting = 'hello' pr ...

  6. Python基础教程学习笔记:第一章 基础知识

    Python基础教程 第二版 学习笔记 1.python的每一个语句的后面可以添加分号也可以不添加分号:在一行有多条语句的时候,必须使用分号加以区分 2.查看Python版本号,在Dos窗口中输入“p ...

  7. 【学习笔记】Python基础教程学习笔记

    教程视频网盘共享:http://pan.baidu.com/s/1hrTrR5E 03-python基础.if判断 print 输出数据 print("hahahah")----- ...

  8. Python基础:数据类型-列表与元组(6)

    Python中数据结构主要有序列.集合和字典. 1. 通用序列操作 Python内置了多种序列,其中最常用的两种:列表和元组.另一种重要的序列是字符串. 列表和元组的主要不同在于:列表是可以修改的,而 ...

  9. Python基础教程学习(四)类的创建与继承

    类中可以有方法,类外也可以有函数,其实类就是一种封装, Python中可以自己定义一个函数,一可以把这个函数在类中封装成一个方法, 其中的属性和方法自然就从父类中继承来了, 要想获得多个类的属性和功能 ...

随机推荐

  1. Eclipse spket插件 内置js文件

    这一篇将怎么在spket内置js文件,而不用用户自己去添加.    1. 在开发的Eclipse的 运行配置将下面几个插件勾选上.     2. 在org.eclipse.ui.startup拓展里执 ...

  2. 一款实用的viewer.js 图片相册

    Viewer.js 是一款强大的图片相册插件,像SNS交友网站一般都会用到点击缩略图,弹出层大图片,而且弹出层有多个控制按钮,比如放大缩小.旋转.撤回等,底部有缩略图列表可切换. 支持移动设备触摸事件 ...

  3. SAP ABAP将大数据量排序后输入到内表

    要向内表读入3百50万条数据,如果一次读入就会产生运行错误,错误提示为,没有内存对于扩展 内表. 我考虑使用SELECT...INTO TABLE...PACKAGE SIZE 和ENDSELECT来 ...

  4. Atitit.Atiposter 发帖机 信息发布器 v7 q516

    Atitit.Atiposter 发帖机 信息发布器 v7 q516 V7 jetty 版本 基本访问改为web版. 这样发布调试 V1  初步实现sina csdn cnblogs V2  实现qz ...

  5. Android 手机卫士--打包生成apk维护到服务器

    项目打包生成apk过程: 1.生成签名文件,并且指定所在位置 2.使用生成的签名文件,给工程打包生成一个apk 本文地址:http://www.cnblogs.com/wuyudong/p/59033 ...

  6. 【代码笔记】iOS-判断是否是iPhone5

    一,代码. #import "RootViewController.h" // 判断是否是iPhone5 #define iPhone5 ([UIScreen instancesR ...

  7. 【代码笔记】iOS-饼图

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @class QuizChartView; @interf ...

  8. 【读书笔记】iOS网络-三种错误

    一,操作系统错误. iOS人机界面指南中,Apple建议不要过度使用AlertViews,因为这会破坏设备的使用感受. 操作系统错误: 1,没有网络. 2,无法路由到目标主机. 3,没用应和监听目标端 ...

  9. NSString方法与NSMutableString方法

    NSString方法+(id) stringWithContentsOfFile:path encoding:enc error:err创建一个新字符串并将其设置为path指定的文件的内容,使用字符编 ...

  10. Sql server profiler抓出的语句不可信

      Sql profiler抓出的语句不可信