最基本的数据结构是序列,序列中每个元素被分配一个序号-元素的位置,也称索引。第一个索引为0,最后一个元素索引为-1。

python中包含6种内建的序列:元组、列表、字符串、unicode字符串、buffer对象和xrange对象。元组与列表的区别:列表可以对其元素进行修改,元组不能改动其元素。

序列的通常操作:索引、分片、加、乘、成员资格(in)、迭代。python中关于序列的内建函数:计算序列长度、找出最大元素和最小元素。

1、索引

 >>> greeting = 'hello'
>>> greeting[0]
'h'
>>> greeting[-1]
'o'
>>> 'hello'[0]
'h'

2、分片

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

3、序列相加

#相同类型的序列才能进行连接操作

4、乘法

#初始化一个长度为10的列表
>>> sequence = [None]*10
>>> sequence
[None, None, None, None, None, None, None, None, None, None]

5、成员资格

>>> permission = 'sdnk'
>>> 'dn' in permission
True

6、长度、最小值及最大值

#len、min、max

列表的内建函数:

7、列表的元素修改-del、split

>>> names = ['Alice','Bob','Vera','Amy','Beth','','']
>>> names[1] = 'venus'
>>> names
['Alice', 'venus', 'Vera', 'Amy', 'Beth', '', '']
>>> del names[1]
>>> names
['Alice', 'Vera', 'Amy', 'Beth', '', '']
>>> names = list('perl')
>>> names
['p', 'e', 'r', 'l']
>>> names[2] = 'xliu vera'
>>> names
['p', 'e', 'xliu vera', 'l']
>>> names[2] = ('l','e')
>>> names
['p', 'e', ('l', 'e'), 'l']
>>> number = [1,3,5]
>>> number[1:1] = [6,8,7]
>>> number
[1, 6, 8, 7, 3, 5]
>>> number[1:4] = []
>>> number
[1, 3, 5]

列表方法:方法与对象联系紧密,对象可以是列表,数字,字符串或者其他类型。格式:对象.方法(参数)

8、列表-append、count、extend、index、insert、pop

>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
>>> lst.count(2)
>>> lst1 = [6,7,8]
>>> lst.extend(lst1)
>>> lst
[1, 2, 3, 4, 6, 7, 8]
>>> lst.index(3)
2
>>> lst.insert(3,'Bob') #格式:操作对象.insert(位置,插入内容)
>>> lst
[1, 2, 3, 'Bob', 4, 6, 7, 8]
>>> lst.pop() #默认的情况下,删除列表的最后一个元素并返回值
8
>>> lst
[1, 2, 3, 'Bob', 4, 6, 7]
>>> lst.pop(0) #移除索引为0的元素并返回其值
1
>>> lst
[2, 3, 'Bob', 4, 6, 7]
>>> lst.remove('Bob')
>>> lst
[2, 3, 4, 6, 7]
>>> lst.reverse()
>>> lst
[7, 6, 4, 3, 2]

9、列表-sort

>>> x = [1,3,5,12,9,11,0,4]
>>> y = x[:] #调用x[:]得到的是每个元素的分片,有效的复制了列表x
>>> y.sort()
>>> x
[1, 3, 5, 12, 9, 11, 0, 4]
>>> y
[0, 1, 3, 4, 5, 9, 11, 12] >>> y = x #x,y同指一个列表,任意改变其中之一另一个也会改变
>>> y.sort()
>>> x
[0, 1, 3, 4, 5, 9, 11, 12]
>>> y
[0, 1, 3, 4, 5, 9, 11, 12] #获取一个已经排序好的副本
>>> x = [1,4,3,6,2,7,3]
>>> y = sorted(x)
>>> x
[1, 4, 3, 6, 2, 7, 3]
>>> y
[1, 2, 3, 3, 4, 6, 7] #以上都是按照默认的排序方式 >>> x = ['hi','we','are','family','']
>>> x.sort(key = len) #按照字符的长度排序
>>> x
['', 'hi', 'we', 'are', 'family']
>>> x.sort(reverse = True) #反向排序
>>> x
['we', 'hi', 'family', 'are', '']

10、元组:基本的元组操作除了创建元组及访问元组外没有其他的操作

>>> 1,2,3
(1, 2, 3)
>>> () #创建空元组
()
>>> 42, #创建只有一个元素的元祖
(42,)
>>> (42,)
(42,)
>>> tuple([1,2,3]) #tuple 将序列转化为元组,功能与list相近
(1, 2, 3)

 

第二章、元组和列表(python基础教程第二版 )的更多相关文章

  1. python基础教程-第二章-列表和元组

    本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...

  2. python基础教程第二版 第一章

    1.模块导入python以增强其功能的扩展:三种方式实现 (1). >>> Import math >>> math.floor(32.9) 32.0 #按照 模块 ...

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

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

  4. Python基础教程总结(一)

    引言: 一直都听说Python很强大,以前只是浏览了一些博客,发现有点像数学建模时使用的Matlab,就没有深入去了解了.如今Python使用的地方越来越多,最近又在学习机器学习方面的知识,因此想系统 ...

  5. 《python基础教程(第二版)》学习笔记 列表/元组(第2章)

    <python基础教程(第二版)>学习笔记 列表/元组(第2章)序列中的下标从0开始x='ABC' ==> x[0]='A', x[1]='B', x[2]='C'负数索引从右边开始 ...

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

    一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...

  7. 《python基础教程(第二版)》学习笔记 文件和素材(第11章)

    <python基础教程(第二版)>学习笔记 文件和素材(第11章) 打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r' ...

  8. 《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)

    <python基础教程(第二版)>学习笔记 语句/循环/条件(第5章) print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' == ...

  9. 《python基础教程(第二版)》学习笔记 类和对象(第7章)

    <python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person:    def setName(self,name):        self.name=n ...

随机推荐

  1. 3433: [Usaco2014 Jan]Recording the Moolympics

    3433: [Usaco2014 Jan]Recording the Moolympics Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 137  S ...

  2. Spring Data JPA 简单查询--接口方法

    一.接口方法整理速查 下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口.PagingAndSortingRepository接口)中的可访问方法进行整理.( ...

  3. 检测Windows程序的内存和资源泄漏之原生语言环境

    最近接连收到大客户的反馈,我们开发的一个软件,姑且称之为App-E吧,在项目规模特别大的情况下,长时间使用会逐渐耗尽内存,运行越来越缓慢,软件最终崩溃.由于App-E是使用混合语言开发的,主界面使用C ...

  4. centos登录时一闪而过,显示module is unknown

    原因是修改了在/etc/pam.d/login中加入了: session required /lib/security/pam_limits.so session required pam_limit ...

  5. 豆瓣电影Top250基本信息抓取

    豆瓣电影Top250基本信息抓取 最近想看电影,但是想看一些有营养的,所以就去豆瓣上看电影评分,但是豆瓣上的评分没有排序,所以就用python把网站内容爬下来了,然后按评分做了排序.具体代码参见git ...

  6. CoreCLR源码探索(五) GC内存收集器的内部实现 调试篇

    在上一篇中我分析了CoreCLR中GC的内部处理, 在这一篇我将使用LLDB实际跟踪CoreCLR中GC,关于如何使用LLDB调试CoreCLR的介绍可以看: 微软官方的文档,地址 我在第3篇中的介绍 ...

  7. Eclipese Mars安装SVN的全步骤

    在做毕业设计的过程中,由于是团队项目,需要用到SVN,而全新的Eclipse Mars从官网下载下来没有SVN插件,需要自己下载. 1.选择Help-->Eclipese MarketPlace ...

  8. 使用github+hexo搭建博客笔记

    听说github上可以搭博客,而且不用自己提供空间和维护,哈哈哈 作为一名程序猿,github搭博客对我有种神奇的吸引力,赶紧动手试一试 关于如何使用hexo搭建博客网上好的教程多如牛毛,而且这篇博客 ...

  9. IOS开发创建开发证书及发布App应用(八)——使用Application Loader工具上传应用

    8.使用Application Loader工具上传应用 继续第七步在iTunes所创建的应用,打开应用,如下图 点击详情按钮进去之后,单击右上角Ready to Upload Binary按钮,如下 ...

  10. Linux网络那点事

    跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 之前的之前说过网络自连接的配置(CentOS服务器网络配置:http://ww ...