个人主页:哈维数据
QQ:1876815991
邮箱:cnharvey@foxmail.com
一、元组
1.元组概述
元组是一个不可变的序列,它的操作方式基本上和列表是一致的。
所以在操作元组的时候,就把元组当成是一个不可变的列表即可。
一般,当我们希望数据不会改变的时候,就使用元组,其他时候都使用列表。
2.创建元组
使用小括号来创建元组
元组是不可变对象,所以我们没法对元组中的元素重新赋值。
当元组不是空元组的时候,括号可以省略。
如果元组不是空元组,那他里面至少要有一个逗号。
元组也可以使用下标索引元素,也可以截取。和列表是很相似的。
但是有一个最本质的区别,元组是不可变类型。我们不能增删改,只能查。
这就代表我们不能使用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.列表的基本操作
创建一个有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])
(这里智障了,第一题第二题实际上应该是连在一起的)