python初学21.Python特色数据类型(元组)(下)
元组和列表相互转化


没错,只要在原来的列表外套一层tuple()就可以转为元组
在原来的元组外面套一层list()就可以转为列表
还记得列表生成式么?
你以为它很简单就过去了么?
不!
它又回来了!
这次,把元组也加进来一起开party了

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

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

是不是也可以
如果字符串里有重复的字符,而我们要找不同的字符的排列组合,该怎么操作?
就像四个队伍,要找出所有打球比赛可能情况(有主客场之分)

我们不希望看到上图红框里 ,因为这是和自己队打自己队,不科学
我们可以加个条件判断来筛选我们要的:

这样就ok了,再一次体现出列表生成式的强大
回头想想
如果我们用一般循环,怎么写?

我们要写这么多行(思路是,先创建一个空列表,然后双层循环,判断两个字符串中取的元素是否相等,不相等则将其组成元组放入列表中)
元组解包
我们在创建元组的时候,其实是在进行元组打包
打包,你懂的,让朋友同学家人给你带外卖需要使用这项技能


通过观察上图,你可能已经知道了元组解包其实就是:
将等号右侧的元组中的元素按顺序依次赋值给等号左边的变量
当然,如果你少写左边的变量,会发生什么呢??
可能我只想要元组前三个元素

结果报错啦!所以要写完整左边的,一 一对应好
小明:元组操作方法比列表少?为啥还要学这个!感觉没啥优势!

小明啊!元组在某些方面有优势的:
1.元组的运算速度比列表快,如果你经常要遍历一个序列,且不需要修改内容,用元组比列表好
2.元组相当于给数据加了保护(不可修改),有些场合需要这种不可修改的内容
想想我们生活中的很多通知说明等word文件不就是只读不可写么,能理解了吧
小明:震惊!元组在这种情况下竟然能将劣势转为优势

今天作业是自己跟着操作一遍~
自己不敲代码永远学不会写代码
下课
人生苦短,我选Python