老男孩Python学习之数据类型 元组

以下是老男孩教育编写的Python教学资料,转载请注明出处:http://www.oldboyedu.com


Python的元组与列表类似,不同之处在于元组的元素不能修改。即数据可以被查询,但不能被修改。所以切片操作同样适用于元组。

一. 定义元组

>>> tup = ("python","小鸡","大鹏","老鼠")

当元组()中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作元素的类型使用:

>>> tup = ("python")
>>> print(tup,type(tup))
>>> tup = ("python",)
>>> print(tup,type(tup))
计算结果:
python <class 'str'>                            #这里打印的类型为元素的类型,不是定义元组的类型
('python',) <class 'tuple'>                     #当加上","后,程序才能识别为元组

二. 元组的索引与切片

索引

>>> tup = ("python","小鸡","大鹏","老鼠")
>>> print(tup[0])
>>> print(tup[1])
>>> print(tup[2])
计算结果:
python
小鸡
大鹏

切片

>>> tup = ("python","小鸡","大鹏","老鼠","Alex","培训")
>>> print(tup[0:3])                     #打印前3个索引的值
>>> print(tup[2:5])                     #打印第2个至第5个的索引的值,索引默认从0开始
>>> print(tup[2:5:2])                   #打印第2个至第5个的索引的值,每隔2个取一次值
>>> print(tup[-2::-2])                  #倒序从倒数第二个向前取值,每隔2个取一次值
>>> print(tup[5:0:-2])                  #倒序从索引5向前取值,每隔2个取一次值
计算结果:
('python', '小鸡', '大鹏')
('大鹏', '老鼠', 'Alex')
('大鹏', 'Alex')
('Alex', '大鹏', 'python')
('培训', '老鼠', '小鸡')

三. 元组的删除

>>> tup = ("python","小鸡","大鹏","老鼠","Alex","培训")
>>> del tup                                 #删除元组
>>> print(tup)
计算结果:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'tup' is not defined

四. 元组和列表的相互转换

>>> tup = ("python","小鸡","大鹏","老鼠","Alex","培训")
>>> li = list(tup)                          #将元组转换为列表
>>> print(li)
>>> tups = tuple(li)
>>> print(tups)                             #将列表转换为元组
计算结果:
['python', '小鸡', '大鹏', '老鼠', 'Alex', '培训']
('python', '小鸡', '大鹏', '老鼠', 'Alex', '培训')

五. 练习题

1. 有如下变量(tu是个元祖),请实现要求的功能

tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
a. 讲述元祖的特性
b. 请问tu变量中的第一个元素 “alex” 是否可被修改?
c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”


猜你喜欢

转载自blog.51cto.com/13755563/2119167