元祖和列表的区别
一、二者区别
列表:
1.可以增加列表内容 append
2.可以统计某个列表段在整个列表中出现的次数 count
3.可以插入一个字符串,并把整个字符串的每个字母拆分当作一个列表段追加到列表当中 extedn
4.可以查询某个列表段在整个列表的位置 index
5.可以在指定位置插入一个列表段 insert
6.可以删除列表的最后一个列表段 pop
7.可以删除指定列表中的某个列表段 remove
8.可以正向反向排序 reverse
9.可以按字母或数字排序 sort
10.定义列表时候使用中括号"[]" 注意:在列表当中,假如某两个列表段相同,不管是使用index还是remove都是统计的最靠前的列表段
元组:
1.可以统计某个元组段在整个元组中出现的次数 count
2.可以查询某个元组段在整个元组中的元组号 index
3.定义元组时候使用小括号"()"
元祖的使用方法
元祖中只包含一个元素时,需要在元素后面添加逗号来消除歧义
创建元祖*
one =(1,) #一个元素
one = ()#空元祖
查询元祖*
test_1 = (1,2,3,4,1,1,2,5,6) #定义元祖
test_2 = ('小羊','小猪','小驴','小胖子','小鸟')
print(test_1[1],test_2[1]) #元祖查询
修改元祖
元组中的元素值是不允许修改的

可以通过del 来删除整个元祖
test_1 = (1,2,3,4,1,1,2,5,6) #定义元祖
test_2 = ('小羊','小猪','小驴','小胖子','小鸟')
#print(test_2)#在这里是可以输出元祖test_2
del test_2#删除元祖
print(test_2)#执行报错

元祖可以通过两个相加组成一个新的元祖
test_1 = (1,2,3,4,1,1,2,5,6) #定义元祖
test_2 = ('小羊','小猪','小驴','小胖子','小鸟')
print(test_2+test_1)
#输出结果('小羊', '小猪', '小驴', '小胖子', '小鸟', 1, 2, 3, 4, 1, 1, 2, 5, 6)
元组索引,截取
1.list[:3] #顾头不顾尾,如果开始的下标不写的话,那么就是从最前面开始
2.list[-1] #-1代表最后一个元素
3.list[1:] #如果下标不写的话,代表取到最后
4.list[:] #开头的下标和结尾的下标都不写的话,代表取整个list
5.list[-6:-10:-1] #第二个冒号后面值代表步长,是隔几个元素取一次,步长是负数的话,从右往左开始取值
6.list[::-1] #将列表里的元素都取出来了,但是顺序是之前的倒过来,因为步长是负数
看代码
teast = (1,2,3,4)
print(teast[1]) #2
print(teast[-1]) #4 -1就是从后往前数第一个 没有0
print(teast[:]) #(1, 2, 3, 4) 输出出全部的元素
print(teast[1:]) #(2, 3, 4) 顾头不顾尾
print(teast[:3]) #(1, 2, 3) 顾尾不顾头
print(teast[::-1]) #(4, 3, 2, 1) 倒过来输出全部元素
print(teast[2:4]) #(3, 4) 输出2-4 2=0 所以不输出出来
print(teast[1::-1]) #(2, 1) 1,2倒过来输出
牵索
tuple_1 = ('a','b','c','d','e','f','g','h')
print(tuple_1[0])
# a
print(tuple_1[3])
# d
print(tuple_1[7])
# h
# 当索引下标为负数时,-1表示最右端元素,从右向左依次递减
print(tuple_1[-1])
# h
print(tuple_1[-4])
# e
元组内置函数
Python元组包含了以下内置函数
1、cmp(tuple1, tuple2):比较两个元组元素。
2、len(tuple):计算元组元素个数。
3、max(tuple):返回元组中元素最大值。
4、min(tuple):返回元组中元素最小值。
5、tuple(seq):将列表转换为元组。
另一种解读
tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
classmates = ('Michael', 'Bob', 'Tracy')
现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。
其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。
不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。
如果可能,能用tuple代替list就尽量用tuple。
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:
t = (1, 2)
print(t)
(1, 2)
来看一个“可变的”tuple:
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)
('a', 'b', ['X', 'Y'])
这个tuple定义的时候有3个元素,分别是’a’,'b’和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?
别急,我们先看看定义的时候tuple包含的3个元素:

当我们把list的元素’A’和’B’修改为’X’和’Y’后,tuple变为:

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
Time:2020/11/30
Name:Eamonze
本文详细对比了Python中元组和列表的特点与用法,包括它们的数据操作方法、索引和切片技巧,以及元组的不可变特性所带来的代码安全性优势。
1030

被折叠的 条评论
为什么被折叠?



