元組和列表相互轉(zhuǎn)化


沒錯,只要在原來的列表外套一層tuple()就可以轉(zhuǎn)為元組
在原來的元組外面套一層list()就可以轉(zhuǎn)為列表
還記得列表生成式么?
你以為它很簡單就過去了么?
不!
它又回來了!
這次,把元組也加進來一起開party了

還記得講列表生成式的時候舉了個排列組合的例子么?

當(dāng)時是用的字符串連接操作,如果加上元組的操作呢?

是不是也可以
如果字符串里有重復(fù)的字符,而我們要找不同的字符的排列組合,該怎么操作?
就像四個隊伍,要找出所有打球比賽可能情況(有主客場之分)

我們不希望看到上圖紅框里 ,因為這是和自己隊打自己隊,不科學(xué)
我們可以加個條件判斷來篩選我們要的:

這樣就ok了,再一次體現(xiàn)出列表生成式的強大
回頭想想
如果我們用一般循環(huán),怎么寫?

我們要寫這么多行(思路是,先創(chuàng)建一個空列表,然后雙層循環(huán),判斷兩個字符串中取的元素是否相等,不相等則將其組成元組放入列表中)
元組解包
我們在創(chuàng)建元組的時候,其實是在進行元組打包
打包,你懂的,讓朋友同學(xué)家人給你帶外賣需要使用這項技能


通過觀察上圖,你可能已經(jīng)知道了元組解包其實就是:
將等號右側(cè)的元組中的元素按順序依次賦值給等號左邊的變量
當(dāng)然,如果你少寫左邊的變量,會發(fā)生什么呢??
可能我只想要元組前三個元素

結(jié)果報錯啦!所以要寫完整左邊的,一 一對應(yīng)好
小明:元組操作方法比列表少?為啥還要學(xué)這個!感覺沒啥優(yōu)勢!

小明??!元組在某些方面有優(yōu)勢的:
1.元組的運算速度比列表快,如果你經(jīng)常要遍歷一個序列,且不需要修改內(nèi)容,用元組比列表好
2.元組相當(dāng)于給數(shù)據(jù)加了保護(不可修改),有些場合需要這種不可修改的內(nèi)容
想想我們生活中的很多通知說明等word文件不就是只讀不可寫么,能理解了吧
小明:震驚!元組在這種情況下竟然能將劣勢轉(zhuǎn)為優(yōu)勢

今天作業(yè)是自己跟著操作一遍~
自己不敲代碼永遠學(xué)不會寫代碼
下課
人生苦短,我選Python