Python3 学习笔记8_元组_20180227

#!/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的每一个元素本身也不能变。

元组比列表要安全, 可以的花,尽量使用元组
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值