Python-基础知识学习之元组(tuple)

元组(tuple):这是一种长度固定、不可变的对象序列。表示方式:

tup = 4,5,6

print(tup)

#会看到打印
(4, 5, 6)

元组还可以是包含元组的元组,比如:

nested_tup = (4, 5, 6), (7, 8)

print(nested_tup)

#打印结果
((4, 5, 6), (7, 8))

在实际使用过程中,经常需要把数组转化成元组或者把字符串转化成元组,这样就可以直接访问每一个数据或字母了,比如:

tup = tuple([1, 2, 3])

print(tup)

#打印出
(1, 2, 3)


tup = tuple('hello')

print(tup)

#打印
('h', 'e', 'l', 'l', 'o')

#如果通过下标访问,就能拿到下标对应的字母了
print(tup[0])

#打印
'h'

我们上面说到,元组是固定长度,无法改变的序列对象,如果元组包含的对象是数组或者其他对象,是可以改变对象内部数据的,比如:

tup = tuple(['foo', [1, 2], True])

tup[1].append(3)

print(tup)

#打印
('foo', [1, 2, 3], True)

元组还可以使用‘+’号进行拼接:

tup1 = (1, 2, 3)
tup2 = (5, 6)
tup3 = ('hello', 'world')

tup = tup1 + tup2 + tup3

print(tup)

#打印
(1, 2, 3, 5, 6, 'hello', 'world')

元组和整数相乘,得到的结果是翻倍的元组:

tup = (1, 2) * 4

print(tup)

#打印
(1, 2, 1, 2, 1, 2, 1, 2)

#注意,对象自身并没有复制,只是指向它们的引用进行了复制。

在日常使用中,还有一个很重要的功能,就是元组拆包,比如:

tup = (1, 2, 3)

a, b, c = tup

print(a)

#打印
1

#另外一种情况,嵌套元组拆包:
tup = 1, 2, (3, 4)

a, b, (c, d) = tup

print(c)

#打印
3

通过上面拆包,其实可以很简单就做到数据交换功能了:

a, b = 1, 2

print(a, b)
#打印
1, 2

#对两个变量的数据进行交换
b, a = a, b

print(a, b)
#打印
2, 1

#这样可以很容易做到交换了,而不需要第三个临时变量保存数据

最后,我们在Python的函数书写方面,经常需要返回多个结果,我们也可以用到元组:

#从一系列数据中找到最大值和最小值并且返回
def func_max_min(a, b, c, d):
    fmax = max(a, b, c, d)
    fmin = min(a, b, c, d)
    return (fmax, fmin)

元组的方法只有一个,就是count,它可以统计元组中哪个元素的个数:

tup = (1, 2, 2, 2, 3, 4, 5, 2)

print(tup.count(2))

#打印
4

猜你喜欢

转载自blog.csdn.net/pz789as/article/details/93724476