《Python基础教程第二版》第二章-Python列表和元祖
序列
例:
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列表和元祖相关推荐
- python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...
python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...
- python基础教程第三版和第二版选哪个-python基础教程 2版和3版哪个适合新手?!...
python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...
- SQL基础教程MICK版 ···第二章总结
SQL基础教程MICK版 ···第二章总结 前期准备 SELECT 语句基础 算术运算符.比较运算符和 NOT运算符 特殊的NULL 逻辑运算符 前期准备 应用第一章学的 建一个数据库 在该库中 建立 ...
- 【爆肝更新】Python基础教程:第五章_Python函数
原创:公众号 数据说话 [爆肝更新]Python基础教程:第五章_Python函数 函数介绍 学习目标: 快速体验一下函数的使用 了解函数的作用. 函数:是组织好的,可重复使用的,用来实现特定功能的代 ...
- python基础教程视频(全13集)-Python基础视频教程全集
原标题:Python基础视频教程全集 Python编程语言的定位是"优雅"."明确"."简单",所以对于Python初学者来说,学起来没有那 ...
- SQL基础教程MICK版 第一章总结
SQL基础教程MICK版 ···第一章总结 数据库的结构 二维表 SQL操作大概的内容 要注意的规则 表的创建 表的删除与表定义的更新 表的数据键入 数据库的结构 最常见的系统结构就是 客户端\服务器 ...
- Python编程从入门到实践(第三、四章的列表和元祖)
1.Python中列表用[]来表示,并用逗号分隔其中元素 2.访问列表元素,给出元素的索引值即可(索引从0开始) 3.修改,添加和删除元素 3.1修改时给出列表名和修改元素的索引,然后赋新值 3.2在 ...
- python基础教程pdf百度云-《Python基础教程(第3版)》PDF高清版
<python基础教程第3版>PDF高清版 百度云资源,内涵教材源代码 百度云链接:百度云盘 提取码:7r7o 编辑推荐 久负盛名的Python入门经典,是非常优秀的基础教程,深入浅出, ...
- 《Python基础教程》第2章读书笔记(1)
# -*- coding:utf-8 -*-#最基本的数据结构:序列,索引从0开始 #python包括6种内建的序列 #最常用的序列包括:列表,元祖#列表 edward = ['Edward Gumb ...
- python基础教程视频(全13集)-Python基础视频教程(600集)【传智播客精品教程】...
Python基础视频教程 初级共600节课 本套视频是传智播客紧抓未来最大趋势--人工智能,应运而生的一套Python入门视频教程,Python是学习人工智能的首选语言,而该视频是专门针对零基础的学员 ...
最新文章
- GAN在产业和学术届的价值!
- 使用python画CDF
- 浏览器左上角的网站图标
- [Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]
- python有没有三元运算符_Python基础入门:从变量到异常处理(1)
- 如何搭建html运行环境,搭建真实的运行环境2019.4.22
- Linux用ICMP协议实现简单Ping网络监测功能
- f12获取网页文本_8招教你快速搞定网页内容禁止复制粘贴,想怎么复制就怎么复制...
- numpy 随机数_TF+Numpy减少随机性的影响
- Linux查看和控制进程
- docker环境搭建redis-cluster集群(多台机器)
- 计算神经生物学 计算机转生物,计算神经生物学的应用有哪些?
- Codeforces Round #375 (Div. 2) F. st-Spanning Tree 生成树
- 禅道类似软件_软件测试工程师都在用哪些测试工具
- ABT 链网公测版发布上线:织链为网 为 DApps 奠基
- 呼吁的词汇用过“人联网晚一天应用就是人类的重大损失”
- 狂神说Springboot
- 公众号管理系统 v1.0.0
- XHTML的目标,规则和细节
- 狗年大作狗文化,吉祥送进千万家!丰收、兴旺、欢乐的景象。(图集)