赞
踩
元组是一种序列,就像列表一样。元组和列表之间的区别在于,与列表(可变)不同,元组不能更改(不可变)。
元组使用括号(),而列表使用方括号[]。
1、初始化元组与赋值
#两种方法都可以初始化
emptyTuple=()
emptyTuple1=tuple()
#两种方法都可以赋值
emptyTuple=(1,2,3,4)
emptyTuple1=1,2,3,4
print(emptyTuple)
print(emptyTuple1)
结果:
如果要创建仅包含一个值的元组,则需要在项目后面添加一个逗号。
#只有一个值的话后面要加逗号
tup=('a',)
tup1='a',
#如果没有逗号,那它是一个string不是一个元组了
notTuple=('a')
print(tup)
print(tup1)
print(notTuple)
结果:
2、访问值
tun=(2,3,4,5)
print(tun[0])#索引正向从0开始
print(tun[-4])#索引负向从最后一个-1开始倒数
结果:
3、切分元组
tun=(2,3,4,5)
print(tun[0:2])
print(tun[:3])
print(tun[-3:-1])
结果:
4、元组不可改变
tun=(2,3,4,5)
tun[0]='fish'
结果:
即使元组是不可变的,也可以采用现有元组的一部分来创建新的元组
tun=(2,3,4,5)
tun1=(6,7,8,9)
tunall=tun+tun1
print(tunall)
结果:
5、Tuple方法
animals=('pig','pig','cat',1)
#返回索引
print('pig first index: ',animals.index('pig'))
print('cat first index: ',animals.index('cat'))
#计数
print(animals.count('pig'))
结果:
6、遍历元组
animals=('pig','pig','cat',1)
for item in animals:
print(item)
for item in ('a','b','c'):
print(item)
结果:
7、元组拆包
元组对序列解包非常有用
x,y=(7,10)
print(x)
print(y)
print("Value of x is {},the value of y is {}".format(x,y))
结果:
8、枚举
枚举函数返回一个元组,其中包含每次迭代的计数(从默认为0的开始)和迭代序列获得的值
friends = ('Steve', 'Rachel', 'Michael', 'Monica')
for index, friend in enumerate(friends):
print(index,friend)
print(index)
print(friend)
for index in enumerate(friends):
print(index)
结果:
列表和元组是标准Python数据类型,用于在序列中存储值。元组是不可变的,而列表是可变的。
以下是元组列表的一些其他优点:
**组比列表更快。**如果你要定义一组常量值,那么你将要做的就是迭代它,使用元组而不是列表。可以使用timeit库部分测量性能差异,该库允许您为Python代码计时。下面的代码为每个方法运行代码100万次,并输出所花费的总时间(以秒为单位)。
import timeit
print('Tuple time: ', timeit.timeit('x=(1,2,3,4,5,6,7,8,9,10,11,12)', number=1000000))
print('List time: ', timeit.timeit('x=[1,2,3,4,5,6,7,8,9,10,11,12]', number=1000000))
结果:
元组可以用作字典键:一些元组可以用作字典键(特别是包含不可变值的元组,如字符串,数字和其他元组)。列表永远不能用作字典键,因为列表不是不可变的。
bigramsTupleDict = {('this', 'is'): 23,
('is', 'a'): 12,
('a', 'sentence'): 2}
print(bigramsTupleDict)
结果:
而列表不行
bigramsListDict = {['this', 'is']: 23,
['is', 'a']: 12,
['a', 'sentence']: 2}
print(bigramsListDict)
结果:
元组可以是集合中的值
graphicDesigner = {('this', 'is'),
('is', 'a'),
('a', 'sentence')}
print(graphicDesigner)
结果:
列表不可以是集合中的值:
graphicDesigner = {['this', 'is'],
['is', 'a'],
['a', 'sentence']}
print(graphicDesigner)
结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。