py基础(4)元组

元组,在python中用tuple表示,它与列表有些类似,可以储存数据,相较于列表的可以修改、增添元素的特性,元组一旦形成便不可以修改,就像是不可以改变的列表。

1.创建一个tuple,list的标志是一对中括号,而元组则是一对小括号

>>> t = ()          ;; 创建一个空元组
>>> type(t)         ;; type函数用来判断括号内对象的类型
<class 'tuple'>

>>> t = (1)         ;; 如果添加了元素,那么必须要有小写英文逗号,才能被判定为元组
>>> type(t)
<class 'int'>
;; 方法1
>>> t = (1,)
>>> type(t)
<class 'tuple'>
;; 方法2
>>> t = 1,          ;; 没有小括号也可以,只要有逗号,也可以判定为元组
>>> type(t)
<class 'tuple'>
>>> t = 1, 2, 3, 4
>>> t
(1, 2, 3, 4)
>>> t = "5", 5, -5  ;; 添加一个有字符串、整数元素的元组 
>>> t
('5', 5, -5)


2.列表和元组
Jake有两个书架,一个书架上摆满了文学书,假设这个书架是一个列表;一个则摆满了英语书,设这个是一个元组。

;; 文学书架上现在有:
>>> l = ["one", 1, 0.5]
>>> l                ;; 书架上有三本书
['one', 1, 0.5]
>>> l[0] = "two"     ;; Jake可以随意改变书架上的书
>>> l
['two', 1, 0.5]
>>> l[0]             ;; 也可以通过索引进行读取
'two'
>>> l[1:3]           ;; 通过分片来一次性拿好几本书
[1, 0.5]

;; 英语书架上现在有:
>>> t = "one", 1, 2
>>> t[0] = "two"     ;; Jake想要换掉第一本书,但报错了,元组的元素一旦确定,就不能改变
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    t[0] = "two"
TypeError: 'tuple' object does not support item assignment
>>> t[0]             ;; 可以通过索引来拿一本书来看
'one'
>>> t[0:]            ;; 通过分片来一次性拿很多书
('one', 1, 2)

:: 不可变的元素,因为不能被修改,所以这可以避免因为其他原因而导致元组内的元素发生改变的情况

>>> t = "one", 1, 2
>>> k = list(t)       ;; 利用list函数,可以将t中的元素变成一个列表,但t仍然是个元组
>>> t
('one', 1, 2)
>>> k                 ;; 只是利用t中的元素而已,并不会改变t
['one', 1, 2]
>>> t1 = tuple(k)     ;; 同样,利用k中的元素,和tuple函数,也可以创建一个新的元组
>>> t1
('one', 1, 2)

3.tuple的函数

>>> t = (1, 3, 5, 2) ;; 创建一个新的元组
>>> t.index(1)       ;; index可以通过元素名来返回该元素在元组中的位置
0
>>> t.index(5)
2
>>> t1 = (1, 2, 2, 3)
>>> t1.index(2)      ;; 若是元组中有多个相同元素, 则返回由左到右的第一个元素位置
1

>>> t = (1, 2, 2, 2, 3, 3)
>>> t.count(2)       ;;  count用来返回所求元素在元组中的数量,元组中有3个元素名为2的元素
3
>>> t.count(3)       ;; 两个元素3
2

4.特殊的tuple

>>> t = (1, 3, 4, [4, 5])  ;; 元组中可以有元素是一个列表
>>> t[3][0]                ;; 这个的意思是:元组t中的第三个元素中的第0个元素
4                          ;; 注意:计算机中是以0开始的,而不是以1开始
>>> t = (1, 3, 4, (4, 5, (12, 2, 4)))  ;; 元组中可以存在元组
>>> t
(1, 3, 4, (4, 5, (12, 2, 4)))

>>> t = (1, 3, 4, [4, 5])  ;; 元组中存在一个列表
>>> t[3][0] = "one"        ;; 因为指定的元素是一个列表的元素,所以可以更改,若是元组,则报错
>>> t
(1, 3, 4, ['one', 5])

小结:元组不可变的特性,就要求我们在元组创立之初,就要想好元组中要放哪些元素。同时,不可变也保证了数据的安全。

猜你喜欢

转载自www.cnblogs.com/nianqiantuling/p/9131007.html