序列

例:

 Edward = ['abc', 12]

序列中的所有元素都是有编号的,从0开始递增。

Note: 使用负数索引-1,Python会从右边,也就是从最后一个元素开始计数。最后一个元素的位置编号是-1.

索引操作

字符串、函数可以直接对返回结果进行操作

‘hello’[1]
fo = raw_input('year: ')[2]

分片

分片通过冒号隔开两个索引。

代码:

numbers = [1, 2, 3, 4]
number[1:2]

输出:

[2, 3]

第一个索引:

提取的第一个元素的编号

第二个索引:

分片之后,剩余部分的第一个元素的编号。
Note:分片第二个索引指向的元素取不到。

简而言之:

分片操作的实现需要两个索引作为边界。
第一个索引元素是包含在分片内的。
第二个索引元素不在分片内。

思考:

numbers = [1,2,3,4,5,6,7,8,9,10]
如何访问最后3个元素。

1.显示操作

numbers[7:10]
#索引10指向第11个元素,第11个元素不存在。为了让分片包含最后一个元素,必须提供最后一个元素的下一个元素的索引作为边界。

2.从尾开始计数(不可行)

numbers[-3:-1]
#无法访问最后一个元素

3.使用索引0访问最后一个元素(不可行)

numbers[-3:0]
#只要分片最左的索引比右边的晚出现在序列中,一律返回空序列。

4.置空最后一个索引(优雅,推荐)

numbers[-3:]

同样适用序列开始的元素:

numbers[:3]

复制序列

复制整个序列,将两个索引都置空。

number2 = numbers[:]
note:number2 = numbers#不可行,会将number2与numbers指向同一个序列

步长

第三个参数是步长。Python中默认步长为1.

numbers[0:10:2]
#取步长为2,取间隔为1个元素的分片。

Note:

步长不能为0。
负数步长,分片从右到左提取元素。

序列加法、乘法

endings = ['st','nd',‘rd’] + 17*['th']\+ ['st','nd',‘rd’] + ['th']*7
#17*['th']表示17个['th']

空列表、None

空列表

[]

用None初始化

seq = [None]*10

成员资格

in运算符:布尔运算符,检查值是否在序列中。

subject = '$$$ abssdjk $$$!'
'$$$' in subjectusers = ['bob','jack']
raw_input('your name:') in users

长度、最小值和最大值

内建函数

len、min、max

len函数

返回序列中所有包含元素的数量

min函数、max函数

返回序列中最大和最小的元素

Note:

序列包括:列表、字符串、元组
故:以上序列的特种对于列表字符串和元组都适用。

列表

列表可以修改:

  • 元素赋值
  • 元素删除
  • 分片赋值
  • 列表方法

list函数

用于创建列表,适用于所有类型的序列,例如字符串

例:

list('hello')#根据字符串创建列表['h','e','l','l','o']

列表转字符串

''.join(somelist)

列表基本操作

 1. 元素赋值2. 删除元素3. 分片赋值

1. 元素赋值

x = [1,2,3]
x[1] = 6

2. 删除元素

names = ['bob','jack','afra']
del names[2]
#列表长度减一

3. 分片赋值

name = list('afra')
name[1:] = list('lpha')

分片赋值:
1.可以使用与原序列不等长的序列将分片替换

name = list('perl')
name[1:] = list('ython')

2.可以在不需要替换任何原有元素的情况下插入新元素

number = [1,5]
number[1:1] = [2,3,4]

3.可以删除元素

number = [1,2,3,4,5]
number[1:4] = []

列表方法

方法:

一个与某些对象有紧密联系的函数。

方法调用:

对象.方法(args)

列表方法

1.append
2.count
3.extend
4.index
5.insert
6.pop
7.remove
8.reverse
9.sort
10.高级排序

1.append
在列表末尾追加新对象,直接修改原列表

number = [1,2,3]
number.append(4)

2.count
统计某个元素在列表中出现的次数

x = [1,1,2,2,2,3]
x.count(1)

3.extend
在列表末尾一次性追加另一序列的多个值。即:用新列表扩展原因的列表。
Note:

extend和连接操作'+'的区别:extend方法修改了序列原始的连接操作不修改序列,返回一个全新的列表连接操作效率比extend方法低    

4.index
从列表中找出某个值第一个匹配项的索引位置

knight = ['hao','a']
knight.index('hao')

5.insert
将对象插入到列表中。

numbers = [1,2,3]
number.insert(3,'four')

6.pop
移除列表中的一个元素(默认最后一个),返回该元素的值。
pop方法是唯一修改列表又返回元素值的列表方法。
Python中实现栈:,出栈pop,入栈append

x[1,2,3,4]
x.pop()
x.pop(0)

Note:在JavaScript中,pop只弹出栈顶值,不会返回栈顶值,可使用top()获取栈顶值

7.remove
移除列表中某个值的第一个匹配项。修改列表,没有返回值。

x = ['i','want','to','to']
x.remove('to')

8.reverse
将列表倒置。改变列表,没有返回值。

x = [1,2,3]
x.reverse()

9.sort
在原位置对列表排序。修改列表,返回None。

x = [8,7,2,43,45]
x.sort()

思考:

用户需要一个排好序的列表副本,但是保留原有列表不变。

思路:

把x的副本赋值给y,对y进行排序。

代码:

x = [1,2,4,5,6,1,23,2,2,3,]
y = x[:]
y.sort()
#强调:x[:]是一种很有效率的复制整个列表的方法。只是简单的把x赋值给y,会让x和y都指向同一个列表。

使用sorted函数

#获取已排序的列表的副本
x = [1,3,4,5,2]
y = sorted(x)
#note:sort()是列表方法,sorted是函数

10.高级排序

1.cmp自定义比较函数

numbers.sort(cmp)

2.key 为每个元素创建一个键,根据键排序

numbers.sort(key = len)

3.reverse = true

numbers.sort(reverse = true)

元组

圆括号表示,不可修改

(1,2,3)

空元组

()

一个值的元组

(42,)

Note:

必须加逗号,即使只有一个值。逗号非常重要。
(4+2) #不是元组(4+2,) #是元组

tuple函数

一序列作为参数转换为元组

tuple([1,2,3])#(1,2,3)
tuple('abc')#(a,b,c)

《Python基础教程第二版》第二章-Python列表和元祖相关推荐

  1. python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

  2. python基础教程第三版和第二版选哪个-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

  3. SQL基础教程MICK版 ···第二章总结

    SQL基础教程MICK版 ···第二章总结 前期准备 SELECT 语句基础 算术运算符.比较运算符和 NOT运算符 特殊的NULL 逻辑运算符 前期准备 应用第一章学的 建一个数据库 在该库中 建立 ...

  4. 【爆肝更新】Python基础教程:第五章_Python函数

    原创:公众号 数据说话 [爆肝更新]Python基础教程:第五章_Python函数 函数介绍 学习目标: 快速体验一下函数的使用 了解函数的作用. 函数:是组织好的,可重复使用的,用来实现特定功能的代 ...

  5. python基础教程视频(全13集)-Python基础视频教程全集

    原标题:Python基础视频教程全集 Python编程语言的定位是"优雅"."明确"."简单",所以对于Python初学者来说,学起来没有那 ...

  6. SQL基础教程MICK版 第一章总结

    SQL基础教程MICK版 ···第一章总结 数据库的结构 二维表 SQL操作大概的内容 要注意的规则 表的创建 表的删除与表定义的更新 表的数据键入 数据库的结构 最常见的系统结构就是 客户端\服务器 ...

  7. Python编程从入门到实践(第三、四章的列表和元祖)

    1.Python中列表用[]来表示,并用逗号分隔其中元素 2.访问列表元素,给出元素的索引值即可(索引从0开始) 3.修改,添加和删除元素 3.1修改时给出列表名和修改元素的索引,然后赋新值 3.2在 ...

  8. python基础教程pdf百度云-《Python基础教程(第3版)》PDF高清版

    <python基础教程第3版>PDF高清版  百度云资源,内涵教材源代码 百度云链接:百度云盘 提取码:7r7o 编辑推荐 久负盛名的Python入门经典,是非常优秀的基础教程,深入浅出, ...

  9. 《Python基础教程》第2章读书笔记(1)

    # -*- coding:utf-8 -*-#最基本的数据结构:序列,索引从0开始 #python包括6种内建的序列 #最常用的序列包括:列表,元祖#列表 edward = ['Edward Gumb ...

  10. python基础教程视频(全13集)-Python基础视频教程(600集)【传智播客精品教程】...

    Python基础视频教程 初级共600节课 本套视频是传智播客紧抓未来最大趋势--人工智能,应运而生的一套Python入门视频教程,Python是学习人工智能的首选语言,而该视频是专门针对零基础的学员 ...

最新文章

  1. GAN在产业和学术届的价值!
  2. 使用python画CDF
  3. 浏览器左上角的网站图标
  4. [Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]
  5. python有没有三元运算符_Python基础入门:从变量到异常处理(1)
  6. 如何搭建html运行环境,搭建真实的运行环境2019.4.22
  7. Linux用ICMP协议实现简单Ping网络监测功能
  8. f12获取网页文本_8招教你快速搞定网页内容禁止复制粘贴,想怎么复制就怎么复制...
  9. numpy 随机数_TF+Numpy减少随机性的影响
  10. Linux查看和控制进程
  11. docker环境搭建redis-cluster集群(多台机器)
  12. 计算神经生物学 计算机转生物,计算神经生物学的应用有哪些?
  13. Codeforces Round #375 (Div. 2) F. st-Spanning Tree 生成树
  14. 禅道类似软件_软件测试工程师都在用哪些测试工具
  15. ABT 链网公测版发布上线:织链为网 为 DApps 奠基
  16. 呼吁的词汇用过“人联网晚一天应用就是人类的重大损失”
  17. 狂神说Springboot
  18. 公众号管理系统 v1.0.0
  19. XHTML的目标,规则和细节
  20. 狗年大作狗文化,吉祥送进千万家!丰收、兴旺、欢乐的景象。(图集)

热门文章

  1. VMware vSphere 5.0升级到5.1的思路
  2. 如何使用Exchange邮件组仲裁
  3. Stuts的Web.xml 详解
  4. 升级python2.6.6到python2.7导致pip命令不可用
  5. PostgreSQL入门,PostgreSQL和mysql
  6. 容器 PaaS 新技术架构下的运维实践
  7. 通配符(WildCard)的使用
  8. 婚姻是唯一没有领导者的联盟
  9. 核心交换机的TRUNK配置功能详细讲解
  10. Visual Basic 2005 - 如何将色彩字符串转换成 Color 结构