[Python]学习笔记4——元组

什么是元组?

元组是一种序列,就像列表一样。元组和列表之间的区别在于,与列表(可变)不同,元组不能更改(不可变)。
元组使用括号(),而列表使用方括号[]。

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)

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Shadownow/article/details/105818489