.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(‘123‘) #功过【】可以将字符串转换为列表
[‘1‘, ‘2‘, ‘3‘]
>>> 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基础教程,完成基础教程学习博客系列.加油!]
时间: 2024-11-07 02:54:04

.Net程序员之Python基础教程学习----列表和元组 [First Day]的相关文章

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

     在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本操作(Join,Split,Replace等和.net里面的也有很多相似点) 一.字符串的基本操作     1.字符串格式化认识: 字符串的格式化用%隔开与C语言一样.赋值也是用%(val1,val2)来传递,其实就是用元组来传递格式化数据. Note: values元素的个数以及格式必须与格式化字

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

   今天主要记录,Python中函数的使用以及异常处理. 一.函数:    1.函数的创建以及调用. def Add(val1,val2): return val1+val2; print Add(1,2) 2. 定义返回多参数的函数,返回的参数以元组的形式返回,可以通过下表索引来获取单个值,下面是获取两数之差和两数之和的函数. 整体上来说还是不错的,在C#中我们一般都用out来实现,多个参数改变返回,不过那样可读性不好. def GetSubAndSum(val1,val2): return

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

    今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要记住. False, '', 0, (), [],{},None 为空,而True,12,'hello',[1] 这些普遍都为真. 其实可以简单理解为,无即是false,有既是true >>> bool(True) True >>> bool(0) False >&g

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

  今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相同的Key,后面Key的value将会覆盖前面的数据. 一.字典的基本用法. 1.字典的创建: 字段的创建格式是{key:Value,Key:Value},也可以通过,dict函数转换. Note:key的顺序按照字符串从小到大排序:如果声明字典的时候有相同的Key,取最后一个.(有别于.net)

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

1.列表 定义: edward = ['Edward Gumdy',42] 描述edward姓名与年龄的列表 edward = [] 空列表 操作: 索引: greeting = 'hello' print(greeting = [0]) 'h' print(greeting = [-1]) 'o' print(greeting = [1]) 'e' 可与函数组合 print(raw_input("year:')[3]) Year:2005 '5' 例: #月份 months = ['Janua

Python基础教程学习:深入 Python iter() 方法

今天我们来介绍下Python基础教程学习之iter() 方法另外的用法.据说很少有人知道这个用法! 一.上代码.学用法 我们都比较熟悉 iter(obj),会返现一个迭代器,如果 obj 不是可迭代对象,则会报错.但其实如果仔细看官方文档,会发现 iter() 方法其实是接受两个参数的,文档说明如下 iter(object[, sentinel]) sentinel 英文翻译为 哨兵. sentinel 参数是可选的,当它存在时,object 不再传入一个可迭代对象,而是一个可调用对象,通俗点说

&lt;&lt;Python基础教程&gt;&gt;学习笔记之|第01章|基础知识

本学习笔记主要用要记录下学习<<Python基础教程>>过程中的一些Key Point,或自己没怎么搞明白的内容,可能有点杂乱,但比较实用,查找起来也方便. 第01章:基础知识 ------ Jython:      Python的Java实现,运行在JVM中,相对稳定,但落后于Python,当前版本2.5,在TA(Python+Robot)会用到 IronPython:  Python的C#实现,运行在Common Language Runtime,速度比Python要快 >

&lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第09章 | 魔法方法、属性和迭代器

这一章,有点抽象,看着有点蛋疼! 双下划线__future__或单下划线有特殊含义,在Python中,这些名字的集合称为魔法方法:最重要的是__init__和一些处理访问对象的方法,这些方法允许你创建自己的序列或者是映射. ------ 准备工作: 将__metaclass__=type放在模块的最开始位置,以确保类时最新式的.考虑下面两个类 class NewStyle(object): more_code_here class OldStyle: more_code_here 如果文件以__

&lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第08章 | 异常

------ 什么是异常:Python用异常对象(exception object)来表示异常情况.如果异常信息未被处理或捕捉. 程序就会用回潄来终止执行 >>> 1/0 Traceback (most recent call last): #Traceback: 一种错误信息 File "<stdin>", line 1, in ? ZeroDivisionError: integer division or modulo by zero 每个异常都是一