python元组怎么做移动_我在第11天学习Python(tuple操作),偷偷,的,第十一天,元组,Tuple...

本文详细对比了Python中元组和列表的特点与用法,包括它们的数据操作方法、索引和切片技巧,以及元组的不可变特性所带来的代码安全性优势。

元祖和列表的区别

一、二者区别

列表:

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]) #元祖查询

修改元祖

元组中的元素值是不允许修改的

b6324e5a447bff29c504730507871da7.png

可以通过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)#执行报错

04dee4a81548124bef5e18e84613e906.png

元祖可以通过两个相加组成一个新的元祖

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个元素:

6153cab6484e7ba1c33b8915cab3e631.png

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

4457a8f75b94e477ab5d89e8d74e82fd.png

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

Time:2020/11/30

Name:Eamonze

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值