個人主頁:哈維數據
QQ:1876815991
郵箱:cnharvey@foxmail.com
一比驻、元組
1.元組概述
元組是一個不可變的序列瞎领,它的操作方式基本上和列表是一致的。
所以在操作元組的時候,就把元組當成是一個不可變的列表即可怎棱。
一般,當我們希望數據不會改變的時候绷跑,就使用元組拳恋,其他時候都使用列表。
2.創(chuàng)建元組
使用小括號來創(chuàng)建元組
元組是不可變對象砸捏,所以我們沒法對元組中的元素重新賦值谬运。
當元組不是空元組的時候隙赁,括號可以省略。
如果元組不是空元組梆暖,那他里面至少要有一個逗號伞访。
元組也可以使用下標索引元素,也可以截取轰驳。和列表是很相似的厚掷。
但是有一個最本質的區(qū)別,元組是不可變類型滑废。我們不能增刪改蝗肪,只能查。
這就代表我們不能使用insert和append等蠕趁。
a=(1,2,3)
3.元組的其他操作
可以同時將元組和變量同步賦值
my_tuple=10,20,30,40
a,b,c,d=my_tuple
print(a)
print(b)
print(c)
print(d)
這樣的過程叫做元組的解包薛闪,這是很方便的一個用法,比如我們想要交換兩個變量的值俺陋。
a=100 b=200
想要將兩個變量進行交換豁延,可以使用解包的特點。
a腊状,b=b诱咏,a
這樣兩個變量的值就被交換了
當我們對一個元組進行解包時,如果變量數量和元組的中的元素數量必須一直缴挖。
如果我們在某個變量前面添加一個星號*袋狞,那么這個變量將會獲取元組中所有剩余的元素。
這個被用于存儲的變量將會以列表的形式存在映屋。
如果說這個變量存在于中間苟鸯,那么就會將除了前面的和后面的以外,中間的全部存儲棚点。
范例:
- 用C來存儲
my_tuple=10,20,30,40,50,60,70 a,b,*c=my_tuple print(a) print(b) print(c) #10 #20 #[30, 40, 50, 60, 70]
- 用b來存儲
my_tuple=10,20,30,40,50,60,70 a,*b,c=my_tuple print(a) print(b) print(c) #10 #[20, 30, 40, 50, 60] #70
- 用a來存儲
my_tuple=10,20,30,40,50,60,70 *a,b,c=my_tuple print(a) print(b) print(c) #[10, 20, 30, 40, 50] #60 #70
我們不能同時出現兩個或兩個以上的*變量早处,否則報錯。
這種賦值方式瘫析,同樣也適用于列表砌梆。
二、列表的嵌套
列表是可以嵌套使用的贬循。列表中的元素也可以是列表類型咸包。
變量=[[列表1],[列表2],[列表3],...,[列表N]]
列表在嵌套時,子列表會被認為是父列表的一個元素杖虾。
所以我們通過索引調用父列表的元素就可以獲取到子列表诉儒。
或者可以使用跨層查找的方法
變量[父列表索引][子列表索引]
#這樣獲取到的是子列表的具體元素
三、列表練習
1.列表的基本操作
創(chuàng)建一個有10個元素的列表亏掀,值為[30,31,30,31,30,31,30,31,30,31]
(1)將索引為0的元素刪除
(2)將索引為1的元素改為28
(3)在下標7的位置插入一個元素31
(4)在列表末尾添加兩個元素:30忱反,31
lists=[30,31,30,31,30,31,30,31,30,31]
lists.pop(0)
print(lists) #[31, 30, 31, 30, 31, 30, 31, 30, 31]
lists[1]=28
print(lists) #[31, 28, 31, 30, 31, 30, 31, 30, 31]
lists.insert(7,31)
print(lists) #[31, 28, 31, 30, 31, 30, 31, 31, 30, 31]
lists.extend([30,31])
print(lists) #[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
2.月份天數計算
提示用戶輸入一個月份,然后再控制臺顯示用戶輸入的月份有多少天滤愕。
mouth=int(input("請輸入月份"))
day=[31,30,31,30,31,30,31,31,30,31,30,31]
print(day[mouth+1])
(這里智障了温算,第一題第二題實際上應該是連在一起的)