查看原文
其他

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

2017-10-17 王大伟 Python爱好者社区

作者:王大伟

Python爱好者社区唯一小编

博客:https://ask.hellobi.com/blog/wangdawei


前言

前文传送门:

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

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

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

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

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

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

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

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

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

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

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


元组和列表相互转化




 


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

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


还记得列表生成式么?

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

不!

它又回来了!

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




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




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




是不是也可以


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

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




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


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




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


回头想想

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




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


元组解包


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


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





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


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


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

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




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


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




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

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

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

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


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





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

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


下课


人生苦短,我选Python

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

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


更多精彩干货请戳~~~

业务知识一站通,懂业务,让你从技术人才中脱颖而出!

陈老师基于咨询公司从业经验与8年25个项目经验,精心打造业务知识体系课程。

点击阅读原文立即学习

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

1.崔老师爬虫实战案例免费学习视频。

2.丘老师数据科学入门指导免费学习视频。

3.陈老师数据分析报告制作免费学习视频。

4.玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

5.丘老师Python网络爬虫实战免费学习视频。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存