Python从零开始系列连载(21)——Python特色数据类型(元组)(下)

浏览: 4580

前言

前文传送门:

Python从零开始系列连载(1)——安装环境

Python从零开始系列连载(2)——jupyter的常用操作(上)

Python从零开始系列连载(3)——jupyter的常用操作(中)

Python从零开始系列连载(4)——jupyter的常用操作(下)

Python从零开始系列连载(5)——Python的基本数据类型(上)

Python从零开始系列连载(6)——Python的基本数据类型(中)

Python从零开始系列连载(7)——Python的基本数据类型(中二)

Python从零开始系列连载(8)——Python的基本数据类型(下)

Python从零开始系列连载(9)——Python的基本运算和表达式(上)

Python从零开始系列连载(10)——Python的基本运算和表达式(中)

Python从零开始系列连载(11)——Python的基本运算和表达式(中二)

Python从零开始系列连载(12)——Python的基本运算和表达式(下)

Python从零开始系列连载(13)——Python程序的基本控制流程(上)

Python从零开始系列连载(14)——Python程序的基本控制流程(中) 

Python从零开始系列连载(15)——Python程序的基本控制流程(中二)

Python从零开始系列连载(16)——Python程序的基本控制流程(下)

Python从零开始系列连载(17)——Python特色数据类型(列表)(上)

Python从零开始系列连载(18)——Python特色数据类型(列表)(中)

Python从零开始系列连载(19)——Python特色数据类型(列表)(下)

Python从零开始系列连载(20)——Python特色数据类型(元组)(上)


元组和列表相互转化


147194839012782760.gif


 Clipboard Image.png


没错,只要在原来的列表外套一层tuple()就可以转为元组

在原来的元组外面套一层list()就可以转为列表


还记得列表生成式么?

你以为它很简单就过去了么?

不!

它又回来了!

这次,把元组也加进来一起开party了


14771059976049009.gif


还记得讲列表生成式的时候举了个排列组合的例子么?


Clipboard Image.png


当时是用的字符串连接操作,如果加上元组的操作呢?


Clipboard Image.png


是不是也可以


如果字符串里有重复的字符,而我们要找不同的字符的排列组合,该怎么操作?

就像四个队伍,要找出所有打球比赛可能情况(有主客场之分)


Clipboard Image.png


我们不希望看到上图红框里 ,因为这是和自己队打自己队,不科学


我们可以加个条件判断来筛选我们要的:


Clipboard Image.png


这样就ok了,再一次体现出列表生成式的强大


回头想想

如果我们用一般循环,怎么写?


Clipboard Image.png


我们要写这么多行(思路是,先创建一个空列表,然后双层循环,判断两个字符串中取的元素是否相等,不相等则将其组成元组放入列表中)


元组解包


我们在创建元组的时候,其实是在进行元组打包


打包,你懂的,让朋友同学家人给你带外卖需要使用这项技能


Clipboard Image.png


Clipboard Image.png

通过观察上图,你可能已经知道了元组解包其实就是:


将等号右侧的元组中的元素按顺序依次赋值给等号左边的变量


当然,如果你少写左边的变量,会发生什么呢??

可能我只想要元组前三个元素


Clipboard Image.png


结果报错啦!所以要写完整左边的,一 一对应好


小明:元组操作方法比列表少?为啥还要学这个!感觉没啥优势!


Clipboard Image.png


小明啊!元组在某些方面有优势的:

1.元组的运算速度比列表快,如果你经常要遍历一个序列,且不需要修改内容,用元组比列表好

2.元组相当于给数据加了保护(不可修改),有些场合需要这种不可修改的内容

想想我们生活中的很多通知说明等word文件不就是只读不可写么,能理解了吧


小明:震惊!元组在这种情况下竟然能将劣势转为优势


Clipboard Image.png



今天作业是自己跟着操作一遍~

自己不敲代码永远学不会写代码


下课


人生苦短,我选Python

未完待续,连载中......

现在还坚持再看连载学习的你们真的很棒棒!


下一篇:Python从零开始系列连载(22)——Python特色数据类型(字典)(上)

推荐 4
本文由 ID王大伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

12 个评论

list1 = [1,2,3,4,5]
tuple(list1)
提示:
TypeError Traceback (most recent call last)
<ipython-input-79-1a2acdb60f0e> in <module>()
----> 1 tuple(list1)

TypeError: 'tuple' object is not callable

这是什么意思?
你用的是2版本么?3的一般不会有问题
你用的是2版本么?3的一般不会有问题
是3的
是按照您的图示安装的,python3
你在重启试试 我这边可以的
ok ,我今天再试试
今天可以了,太奇怪了,非常感谢!感谢!
那就好
print [(m,n) for m in 'abcd' for n in 'abcd']
怎样让这个结果换行
[('a', 'a'), ('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'a'), ('b', 'b'), ('b', 'c'), ('b', 'd'), ('c', 'a'), ('c', 'b'), ('c', 'c'), ('c', 'd'), ('d', 'a'), ('d', 'b'), ('d', 'c'), ('d', 'd')]
表情包GET了
哈哈 你试试加个\n咯

要回复文章请先登录注册