零基础入门学习Python(16)--序列!序列!
前言
你可能发现了,小甲鱼把这个列表,元组,字符串放在一起讲是有道理的,它们有许多共同点:
- 都可以通过索引得到每一个元素
- 默认索引值总是从0开始
- 可以通过分片的方法得到一个范围内的元素的集合
- 有很多共同的操作符(
*
重复操作符、+
拼接操作符、in
not in
成员关系操作符)
我们把这三种类型统称为序列。
知识点
介绍下序列常见的BIF()
list(iterable)
把一个可迭代对象转换为列表
所谓迭代,就是重复反馈过程的活动,其目的通常是为了接近并达到所需的目标或结果,每一次对过程的重复,被称之为一次
迭代
。而每一次迭代的结果,都会变成下一次迭代的初始值。
所以呢,目前来说,迭代就是一个for循环。我们今后会介绍迭代器,那时迭代就不会仅仅是一个for了。
>>> b = 'i love fishc.com'
>>> b = list(b)
>>> b
['i', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'c', '.', 'c', 'o', 'm']
b本来是一个字符串,然后通过list方法,把字符串迭代,变成一个列表,然后赋值给回b。
>>> c = (1,1,2,3,5,8,13,21,34)
>>> c = list(c)
>>> c
[1, 1, 2, 3, 5, 8, 13, 21, 34]
c从元组变成了列表
tuple([iterable])
把一个可迭代对象转换为元组
>>> a = ['123',['a','b'],4,5,'c']
>>> tuple(a)
('123', ['a', 'b'], 4, 5, 'c')
str(object)
把object对象转换为字符串
>>> a = ['123',['a','b'],4,5,'c']
>>> type(a)
<class 'list'>
>>> a = str(a)
>>> a
"['123', ['a', 'b'], 4, 5, 'c']"
>>> type(a)
<class 'str'>
len(sub)
返回sub的长度
>>> a
['123', ['a', 'b'], 4, 5, 'c']
>>> len(a)
5
>>> a = str(a)
>>> a
"['123', ['a', 'b'], 4, 5, 'c']"
>>> len(a)
30
max()
返回序列或者参数集合中的最大值
>>> numbers = [1,18,13,0,-98,34,54,76,32]
>>> max(numbers)
76
min()
返回序列或者参数集合中的最小值
>>> numbers = [1,18,13,0,-98,34,54,76,32]
>>> min(numbers)
-98
>>> chars = '1234567890'
>>> min(chars)
'0'
>>> tupe1 = (1,2,3,4,5,6,7,8,9,0)
>>> max(tupe1)
9
>>> min(tupe1)
0
【注意】:使用max,min方法都要保证序列或者参数的数据类型都是一致的,否则会报错:
>>> mix = ['a','c',1,32,'d']
>>> max(mix)
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
max(mix)
TypeError: '>' not supported between instances of 'int' and 'str'
sum(iterable[,start=0])
返回序列iterable和可选参数start的总和
>>> tuple2 = (3.1,2.3,3.4)
>>> sum(tuple2)
8.8
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> numbers.append('a')
>>> sum(numbers)
Traceback (most recent call last):
File "<pyshell#70>", line 1, in <module>
sum(numbers)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> numbers.pop()
'a'
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> sum(numbers)
130
>>> sum(numbers,8)
138
>>>
sorted(iterable, key=None, reverse=False)
返回一个排序的列表,使用方法跟列表的内建函数(list.sort())一致,注意,这个sorted()后边有“ed”哦。
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> sorted(numbers)
[-98, 0, 1, 13, 18, 32, 34, 54, 76]
reversed(sequence)
返回逆向迭代序列的值,一样道理,跟列表的内建函数(list.reverse())一致,注意,这个reversed()后边也多了个“d”哦。
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> reversed(numbers)
<list_reverseiterator object at 0x000000BE2F19E780>
>>> list(reversed(numbers))
[32, 76, 54, 34, -98, 0, 13, 18, 1]
enumerate(iterable)
生成由每个元素的index值和item值组成的元组
>>> numbers
[1, 18, 13, 0, -98, 34, 54, 76, 32]
>>> enumerate(numbers)
<enumerate object at 0x000000BE2F43DEE8>
>>> list(enumerate(numbers))
[(0, 1), (1, 18), (2, 13), (3, 0), (4, -98), (5, 34), (6, 54), (7, 76), (8, 32)]
zip(iter1 [,iter2 […]])
返回由各个参数的序列组成的元组
>>> a = [1,2,3,4,5,6,7,8]
>>> b = [4,5,6,7,8]
>>> zip(a,b)
<zip object at 0x000000BE2F4193C8>
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]
课后习题
测试题
我们根据列表、元组和字符串的共同特点,把它们统称什么?
序列
请问分别使用什么BIF,可以把一个可迭代对象转换为列表、元组和字符串?
list([iterable]) 转换为列表
tuple([iterable]) 转换为元组
str(obj) 转换为字符串
你还能复述出“迭代”的概念吗?
所谓迭代,就是重复反馈过程的活动,其目的通常是为了接近并达到所需的目标或结果,
每一次对过程的重复,被称之为一次`迭代`。而每一次迭代的结果,都会变成下一次迭代的初始值。
你认为调用max('I love FishC.com')
会返回什么值?为什么?
>>> max('I love FishC.com')
'v'
因为字符串在计算机中是以ASCII码的形式存储,参数中ASCII码值最大的是’v’ 对应118.
图片内容
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
IsFind = False
for each in score:
if name in each:
print(name + '的得分是:', each[1])
IsFind = True
break
if IsFind == False:
print('查找的数据不存在!')
动动手
**猜想一下min()这个BIF的实现过程
def min(x):
least = x[0]
for each in x:
if each < least:
least = each
return least
print(min('123456789'))
视频中我们说sun()这个BIF有个缺陷,就是如果参数里有字符串类型的话,就会报错,请写出一个新的实现过程,自动”无视”参数里的字符串并返回正确的计算结果
def sum(x):
result = 0
for each in x:
if (type(each) == int ) or (type(each) == float):
result += each
else:
continue
return result
print(sum([1,2.1,2.3,'a','1',True]))
零基础入门学习Python(16)--序列!序列!的更多相关文章
- 【Python教程】《零基础入门学习Python》(小甲鱼)
[Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609
- 《零基础入门学习Python》【第一版】视频课后答案第001讲
测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...
- 零基础入门学习Python(1)--我和Python的第一次亲密接触
前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...
- 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案
国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...
- 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案
初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...
- 零基础入门学习Python(36)--类和对象:给大家介绍对象
知识点 Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前 ...
- 零基础入门学习Python(17)--函数:Python的乐高积木
前言 相信大家小时候都玩过神奇的乐高积木, 只要通过想象力和创造力我们可以拼凑很多神奇的东西,那么随着我们学习的深入,我们编写的Python代码也将日益增加,并且也越来越复杂, 所以呢,我们需要找寻一 ...
- 零基础入门学习Python(35)--图形用户界面入门:EasyGui
知识点 EasyGui学习文档[超详细中文版] 1. 建议不要在IDLE上运行EasyGui EasyGui是运行在TKinter上并拥有自身的事件循环,而IDLE也是Tkinter写的一个应用程序并 ...
- 零基础入门学习Python(32)--异常处理:你不可能总是对的
知识点 即便Python程序的语法是正确的,在运行它的时候,也有可能发生错误.运行期检测到的错误被称为异常. 大多数的异常都不会被程序处理,都以错误信息的形式展现在这里: Python标准异常总结 序 ...
随机推荐
- 前端性能优化之WebP
此文已由作者吴维伟授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前端性能优化是一件很琐碎的事情.它不像其它很多技术,在确切有限的步骤下就可以把功能做好.它就像是在打扫屋子, ...
- 0 Java实现 一篇文章说尽设计模式之六大原则
我们知道,设计模式很有用,学好设计模式不但能让你写出更简洁,优雅的代码,还能使得代码的结构更清晰,也更有利于扩展 当然设计模式也不是万能的,一成不变的.设计模式只是前人总结出来的一种经验,一种特定问题 ...
- django urls路由匹配分发
django urls路由匹配分发 一.urls配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对 ...
- [ZJOI2011]道馆之战
Description 口袋妖怪(又名神奇宝贝或宠物小精灵)红/蓝/绿宝石中的水系道馆需要经过三个冰地才能到达馆主的面前,冰地中的每一个冰块都只能经过一次.当一个冰地上的所有冰块都被经过之后,到下一个 ...
- Sgu294He's Circles
Description 有一个长度为N的环,上面写着'X'和'E',问本质不同的环有多少种.(N不超过200000). Input The input file contains a single i ...
- [POI2010]Antisymmetry
Description 对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一样,就称作"反对称"字符串.比如00001111和010101就是反对称的,100 ...
- LD_LIBRARY_PATH与-L的关系以及延伸
最近跟同学讨论c++在编译时g++ -L.. 和LD_LIBRARY_PATH的问题,今天在做一个东西的时候发现,我对这两个东西的理解是错误的,经过一番研究,写下我对这些东西的想法,如果有不对的地方, ...
- 在linux环境下使用itext生成pdf
转载请注明出处 https://www.cnblogs.com/majianming/p/9537173.html 项目中需要对订单生成pdf文件,在不断的尝试之后,终于生成了比较满意的pdf文档. ...
- window.form增删改查
效果展示: 查询: 可以查询姓名:民族:姓名+民族:都是空的查询全部 取值取得是姓名: 删除: 修改: 先选中查询之后修改: 添加: 代码部分: 第一张表: 第二张表:主表,民族代码加名称 natio ...
- 获取请求服务器传输协议http or https
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PO ...