序列之元组详解

元组是序列一种,与列表类似,但是不能修改,下面我们详解介绍下元组:

1 列表近亲:元组

1.1 元组定义与访问方式:

元组与列表类似,元组语法:(ele1, ele2, ele3);具体如下:

#定义元组1,与列表类似
a = (1,2,3)
print(a)
#定义元组2
b = ‘a‘, ‘b‘, ‘c‘
print(b)
#元素访问:
print(a[0], b[1])

1.2 tuple方法使用:

tuple可以将可迭代对象转成元组,相关操作如下:

#range对象转元组
print(tuple(range(10)))
#字符串转列表
print(tuple(‘helloworld‘))
#列表转元组
print(tuple([‘C++‘, ‘Java‘, ‘Python‘]))

1.3 元组不可修改:

尝试修改元组:

#小明成绩单
xiaoming = (59, 80)
#尝试修改下:
xiaoming[0] = 60

输出结果:

TypeError                                 Traceback (most recent call last)
<ipython-input-1-1ba0d7da8615> in <module>
      2 xiaoming = (59, 80)
      3 #尝试修改下:
----> 4 xiaoming[0] = 60

TypeError: ‘tuple‘ object does not support item assignment

列表中的元素是不能修改的。

2.元组常规操作:

2.1 切片操作:

tv = (‘小米‘, ‘创维‘, ‘海信‘,‘康佳‘,‘长虹‘)
print(‘tv=‘,tv)
#切片操作
print(‘tv[:2]=‘, tv[:2])
#掐头去尾
print(‘tv[0:-1]=‘, tv[0:-1])
#反序
print(‘tv[::-1]=‘, tv[::-1])
#隔一个取一个
print(‘tv[::2]=‘, tv[::2])

输出结果如下:
tv= (‘小米‘, ‘创维‘, ‘海信‘, ‘康佳‘, ‘长虹‘)
tv[:2]= (‘小米‘, ‘创维‘)
tv[0:-1]= (‘小米‘, ‘创维‘, ‘海信‘, ‘康佳‘)
tv[::-1]= (‘长虹‘, ‘康佳‘, ‘海信‘, ‘创维‘, ‘小米‘)
tv[::2]= (‘小米‘, ‘海信‘, ‘长虹‘)

2.2 元组遍历:

tvs = (‘小米‘, ‘创维‘, ‘海信‘,‘康佳‘,‘长虹‘)
for tv in tvs:
    print(tv)

输出结果:

小米
创维
海信
康佳
长虹

2.3 元组常用函数:

#定义元组
t = (90, 30, 40, 80, 100)
#长度:
print(‘len t:‘, len(t))
#最大值:
print(‘max value:‘, max(t))
#最小值:
print(‘min value:‘, min(t))
#平均值:
print(‘ave value:‘, sum(t)/len(t))

2.4 元组相关方法:

元组是不可变数据结构,只有两个方法,我们来看下:

方法 说明
T.count(value) 统计元素在元组中数量
T.index(value, [start, [stop]]) 返回元素第一次出现索引,不存在报异常

相关使用如下:

t = (90, 30, 40, 80, 100)
#90出现次数
print(‘{}.count({})={}‘.format(‘t‘, 90, t.count(90)))
#90在元组中索引
print(‘{}.index({})={}‘.format(‘t‘, 90, t.index(90)))
#0在元组中索引
print(‘{}.index({})={}‘.format(‘t‘, 0, t.index(0)))

运行结果:

t.count(90)=1
t.index(90)=0
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-19-cc15ec2f620f> in <module>
      5 print(‘{}.index({})={}‘.format(‘t‘, 90, t.index(90)))
      6 #0在元组中索引
----> 7 print(‘{}.index({})={}‘.format(‘t‘, 0, t.index(0)))

ValueError: tuple.index(x): x not in tuple

注意最后一场。

3.元组使用场景:

3.1 函数返回多个值:

定义一个函数,参数为两个数字,返回两个数字和,积;
分析:逻辑上实现不困难,如何返回两个值?
我们定义一个函数,返回一个固定值:

#定义函数
def func():
    return 0
print(‘func()=‘, func())

输出结果:func()= 0
如何返回两个值,在后面价格书试试,代码实现如下:

#定义函数
def func():
    return 0,1
print(‘func()=‘, func())

输出结果:func()= (0, 1)
可以看到,返回值为一个元组,然后我们来实现返回和与积的函数,代码实现:

#定义函数
def func(a, b):
    return a+b, a*b
print(‘func({}, {})={}‘.format(2,5, func(2, 5)))

输出结果:func(2, 5)=(7, 10)

如何接受这两个值:还记得大明湖畔的多元赋值么?

m = 2,3
#m什么类型?
print(m)
#x,y是什么值?
x,y = m
print(x, y)

输出结果:

(2, 3)
2 3

希望大家记得这些方法使用。

3.2 函数传多个不定数量参数,例如sum函数?

sum函数,可以传入多个数字,这个实现其实也和元组有关,
我么来演示个例子:

#*args:可变长非关键字
def mysum(a,b, *args):
    #查看args类型
    print(args, type(args))
    return a+b+sum(args)
print(mysum(1,2))
print(mysum(1,2,3))
print(mysum(1,2,3, 4))

我们在这时只是展示他的用法,后面讲函数时候我们在详解解释;

到这里元组基本使用就介绍完了,希望对大家理解有所帮。
另外欢迎大家关注老猫的专栏:
http://blog.51cto.com/cloumn/detail/34

原文地址:http://blog.51cto.com/huangyg/2321395

时间: 2024-11-09 10:45:26

序列之元组详解的相关文章

有序序列ol li 详解(ol li 标号未显示?)

ol定义和用法 <ol> 标签定义了一个有序列表. 列表排序以数字来显示.使用<li> 标签来定义列表选项. 基本语法如下: <ol> <li>菠萝</li> <li>西瓜</li> <li>火龙果</li> </ol> 运行结果: ol属性 属性 值 描述 compact compact HTML5中不支持,不赞成使用.请使用样式取代它. 规定列表呈现的效果比正常情况更小巧. reve

基于zookeeper分布式全局序列分布式锁详解

InterProcessMutex 类详解步骤:获取锁的过程步骤: 1.acquire方法,根据当前线程获取锁对象,判断当前的线程是否已经获取锁,此处则代表可重入:2.获取锁方法,String lockPath = internals.attemptLock(time, unit, getLockNodeBytes());3.当获取到锁时,则把锁数据放入内存对象private final ConcurrentMap<Thread, LockData>   threadData = Maps.n

Illumina Sequence Identifiers 序列标识符 index详解

大家基本都知道什么是 FASTA 和 FastQ 格式了,但这是不够的. 我们还需要了解世界上最大的测序公司自己定制的 FastQ 格式,因为你可能会经常用到,有时还会亲自去处理它们. 本文主题:Illumina 测序数据中的 Index Fastq格式详解

Python学习之通用序列类型数据详解

本文和大家分享的主要是python通用序列类型数据的相关操作,一起来看看吧,希望对大家学习python有所帮助. Python的序列,Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python的序列 Python有6种内建的序列,包括:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.其中最为常用的是Python的列表和元组. Python序列的应用 Pyt

python 列表、元组 详解

python中有6种序列的内置类型,分别为:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象 列表和元组是最常见两种类型. 下面将以列表(list)和元组(tuple)为例对序列操作进行详细的讲解: 一.列表(list) 列表序列操作有:索引.切片.修改.追加.插入.删除.扩展.统计.排序(翻转).获取下标.拷贝 1. 索引 (list[i]) 列表的索引序号(又称为下标)如下图所示,该序列一共拥有n个元素, 从左到右索引是从 0 开始,  n-1 为最后一个元素 从

序列之列表详解

列表是python中常用的重要数据结构,它与字符串,元组都属于序列,支持序列相关操作:本文主要内容如下:1>列表定义方式与基本用法:2>列表遍历:2>字符串,元组与列表区别:3>列表常用函数介绍. 1.列表定义方式: 列表在Python中表示方法:[val1, val2, val3],我们可以认为列表是一个大容器,里面可以放任意对象:1)直接定义列表: #数字列表,价格列表 price = [90, 89, 70,100] #字符串列表,球队列表 teams = ['恒大', '富

tuple元组详解

这次要讲的内容是:c++11中的tuple(元组).tuple看似简单,其实它是简约而不简单,可以说它是c++11中一个既简单又复杂的东东,关于它简单的一面是它很容易使用,复杂的一面是它内部隐藏了太多细节,要揭开它神秘的面纱时又比较困难. tuple是一个固定大小的不同类型值的集合,是泛化的std::pair.和c#中的tuple类似,但是比c#中的tuple强大得多.我们也可以把他当做一个通用的结构体来用,不需要创建结构体又获取结构体的特征,在某些情况下可以取代结构体使程序更简洁,直观. 基本

Python教学课程分享3-列表与元组详解

第3章  列表与元组 3.1  序列操作 3.1.1  创建序列 Python序列一般指列表.元组和字符串,这里以列表为例,当编程人员想创建一个列表序列时,可以遵照以下指令规则(names为随意设定的变量,用来存储列表中的内容): l names = ['awei', 'xiaohao', 'ludashi','happy','perfect'] 在这个序列中,第一个元素为'awei',索引为0,之后的元素以此类推. 在序列中,所有的序列类型都是可以进行某些特定操作的,这些特定操作包括元素访问,

Python之tuple元组详解

元组:有序,一级元素不可以修改.不能被增加或删除(元组是可迭代对象) 一般写法括号内最后面加个英文逗号用来区分: test  =  (,) test1 = (11,22,) 例: test = (123, 456, 789, 'abc',) 1.通过索引取值 v = test[2] #取出 789 print(v) 2.切片取值 v1, v2 = test[1:3] #取出456和789 pritn(v1, v2) 3.可以for循环,是可迭代对象 for item in test: print