#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 学习网站:www.runoob.com
#****************************************************
# Python3 元组 *
#****************************************************
print ("--------------------分割线------------------")
'''
元组与列表类似,不同之处在于元组的元素不能修改
元组使用小括号(),列表使用方括号[]
元组创建只需要在括号中添加元素,并使用逗号隔开即可
'''
tup1 = ('baidu', 'soho', 2017, 2018)
print( tup1 ) # ('baidu', 'soho', 2017, 2018)
# 创建空元组
tup2 = ()
# 元组只包含一个元素时,需要在元素后面添加逗号,否则括号会被
# 当作运算符使用
tup1 = (50)
print( type(tup1) ) # <class 'int'>
tup2 = (50,)
print( type(tup2) ) # <class 'tuple'>
#============
# 访问元组
#============
tupa = ('baidu', 'soho', 2017, 2018)
print( tupa[0], tupa[:] ) # baidu ('baidu', 'soho', 2017, 2018)
print( tupa[1:3] ) # ('soho', 2017)
print ("--------------------分割线------------------")
#============
# 修改元组
#============
# 元组中的元素值是不允许修改的,但可以对元组进行连接组合。
tup1 = (100,)
tup2 = (200,300)
tup3 = tup1 + tup2
print( tup3 ) # (100, 200, 300)
# 以下修改元组元素操作是非法的
# tup2[0] = 222
#============
# 删除元组
#============
# 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
tupa = ('baidu', 'soho', 2017, 2018)
print( tupa ) # ('baidu', 'soho', 2017, 2018)
del tupa
#print( tupa ) # name 'tupa' is not defined
print ("--------------------分割线------------------")
#============
# 元组运算符
#============
tupx = ('baidu', 'soho')
tupy = (110, 120)
# 计算元素个数
print( len(tupx) ) # 2
# 连接元组
print( tupx+tupy ) # ('baidu', 'soho', 110, 120)
# 重复输出
print( tupx*2 ) # ('baidu', 'soho', 'baidu', 'soho')
# 元素是否存在
print( 110 in tupy ) # True
# 迭代
for x in tupx:
print( x, end=" " ) # baidu soho
print()
# 元组索引
print( tupx[0] ) # baidu
print( tupx[-1] ) # sohu
print( tupx[:] ) # ('baidu', 'soho')
print ("--------------------分割线------------------")
#============
# 元组函数
#============
tup_t = ('5', '4', '3', '7')
# 返回元组中元素最大值
print( max(tup_t) ) # 7
print( min(tup_t) ) # 3
list1 = ['baidu','google','360safe']
print( tuple(list1) ) # ('baidu', 'google', '360safe')
print ("--------------------分割线------------------")
#============
# 关于元素的值不可变
#============
# 以下为一个“可变的”元组
t = ('1', '2', ['A', 'B'])
print( t ) # ('1', '2', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print( t ) # ('1', '2', ['X', 'Y'])
'''
这个tuple定义的时候有3个元素,分别是'1','2'和一个list。不是说tuple
一旦定义后就不可变了吗? 怎么后来又变了?
别急, 我们先看看定义的时候tuple包含的3个元素:当我们把list的元素'A'
'B'修改为'X','Y'后,tuple变为:表面上看,tuple的元素确实变了,但其实
变的不是tuple的元素,而是list的元素。tuple一开始指向的List并没有改成
别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
即指向‘1’,就不能改成指向‘2’,指向一个list,就不能改成指向其他对象,
但指向的这个list本身是可变的!理解了指向不变后,要创建一个内容也不变的
tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
元组比列表要安全, 可以的花,尽量使用元组
'''
Python3 学习笔记8_元组_20180227
最新推荐文章于 2023-01-06 10:38:20 发布