Python tuple元组详解
Python创建元组
Python中提供了两种方法创建元组;
1、使用()直接创建元组
通过( )创建元组后,一般使用=将它赋值给某个变量,具体格式为:
tuplename = (element1, element2, …, elementn)
tuplename 表示变量名,element1 ~ elementn 表示元组的元素。
例如如下例子:
numbers = (1,2,3,4,5,6)
student = ("xiaoming", "xiaohong","xiaodong")
abc = ( "Python", 3, [1,2], ('love',1) )
1、在 Python 中,元组通常都是使用一对小括号将所有元素包围起来的,但小括号不是必须的,只要将各元素用逗号隔开,Python 就会将其视为元组,如:student = “xiaoming”, “xiaohong”,“xiaodong”
2、当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号,,否则 Python 解释器会将它视为字符串。如:student = (“xiaoming”,)
2、使用tuple()创建元组
除了使用( )创建元组外,Python 还提供了一个内置的函数 tuple(),用来将其它数据类型转换为元组类型。
tuple() 的语法格式如下:
tuple(data)
data 表示可以转化为元组的数据,包括字符串、元组、range 对象等
例子为:
#将字符串转换成元组
place = tuple("Beijing")
print(place)
#将列表转换成元组
student = ['xiaoming','xiaohong','xiaojun','xiaohang']
student_tuple = tuple(student)
print(student_tuple)
#将字典转换成元组
student_message = {'xiaoming':19, 'xiaohong':18, 'xiaoli':15}
student_message_tupple = tuple(student_message)
print(student_message_tupple)
#将区间转换成元组
qujian = range(1, 10)
tuple1 = tuple(qujian)
print(tuple1)
#创建空元组
print(tuple())
运行结果如图:
('B', 'e', 'i', 'j', 'i', 'n', 'g')
('xiaoming', 'xiaohong', 'xiaojun', 'xiaohang')
('xiaoming', 'xiaohong', 'xiaoli')
(1, 2, 3, 4, 5, 6, 7, 8, 9)
()
Python访问元组元素
在Python中,可以使用两种方法访问元组中的元素,我们可以使用索引(index)访问元组中的某个元素(得到的是一个元素的值),也可以使用切片访问元组中的一组元素(得到的是一个新的子元组)。
使用索引(index)访问元组元素的格式为:
tuplename[i]
tuplename 表示元组名字,i 表示索引值。元组的索引可以是正数,也可以是负数。
使用切片访问元组元素的格式为:
tuplename[start : end : step]
start 表示起始索引,end 表示结束索引,step 表示步长。
如下为例子
student = tuple("I love you China,welcome to beijing")
#使用索引访问元组中的某个元素
print(student[6]) #使用正数索引
print(student[-10]) #使用负数索引
#使用切片访问元组中的一组元素
print(student[0: 8]) #使用正数切片
print(student[0: 19: 2]) #指定步长
print(student[-18: -3]) #使用负数切片
运行结果为:
t
('I', ' ', 'l', 'o', 'v', 'e', ' ', 'y')
('I', 'l', 'v', ' ', 'o', ' ', 'h', 'n', ',', 'e')
('w', 'e', 'l', 'c', 'o', 'm', 'e', ' ', 't', 'o', ' ', 'b', 'e', 'i', 'j')
Python中修改元组
前面我们已经说过,元组是不可变序列,元组中的元素不能被修改,所以我们只能创建一个新的元组去替代旧的元组。
tup1 = (1,2,3,4,5)
print(tup1)
#对元组进行重新赋值
tup1 = ("上山打老虎",)
print(tup1)
输出结果为:
(1, 2, 3, 4, 5)
('上山打老虎',)
另外,还可以通过使用运算符“+”连接多个元组,向元组中添加新元素。
tup1 = (1,2,3,4,5)
print(tup1)
#对元组进行重新赋值
tup2 = ("上山打老虎",)
print(tup1+tup2)
运行结果为:
(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5, '上山打老虎')
Python中删除元组
当创建的元组不再使用时,可以通过 del 关键字将其删除,例子为:
tup1 = (1,2,3,4,5)
print(tup1)
del tup1
print(tup1)
运行的结果为:
(1, 2, 3, 4, 5)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-10-061799c7cd56> in <module>
Python中列表和元组的区别
- 列表属于可变序列,其中的元素可以随时增删查改;元组属于不可变序列,其中的元素是不可以修改的,如果要修改就想上文那样整体替换。
- 列表中可以使用的增删查改的函数有很多,如可以使用append()、extend()、insert()、pop()等方法实现添加和修改列表的元素。而元组没有这几个方法,所以元组不能进行增删查改等操作。
- 列表可以使用切片访问和修改列表中的元素。虽然元组也支持切片,但是只支持通过切片访问元素,不能修改元素。
- 元组比列表的访问和处理速度都要快,所以只是需要对其中的元素进行访问操作的话,建议使用元组、
- 列表不能为字典的键,而元组可以为字典的键。