python基础知识之元组

元组是什么?

  • 你可以把它看作是只读的列表,因为元组不可改变,但是要注意,如果元组中含有列表元素,则该列表元素是可变的,通俗地讲就是“儿子不可变,但是孙子可变”
  • 由于元组不可变,所以对于增删改查这四种标准操作来讲只有查能实现,元组的查询操作很简单

创建元组

可以通过直接赋值的方式创建元组,用逗号间隔元素,可以用括号括起来,但这不是必要的,重要的是逗号,比如:

a = 1,2,3
b = (1,2,3)
print(type(a))
print(type(b))
对于a和b两种创建方式是等价的,a和b的类型都是元组,输出结果为:
<class 'tuple'>
<class 'tuple'>

但是如果创建单个元素的元组,则必须在后面多加一个逗号,比如:

a = 1,
print(type(a))
输出结果为:
<class 'tuple'>

在数字1后面加上一个逗号,则它的类型就是元组,否则它的类型就是int

而如果只用括号的话,则不是元组:
a = (1)
print(type(a))
输出结果为:
<class 'int'>
所以更加说明了括号不是重要的,重要的是逗号。

访问元组

可以方便地用索引以及切片的方法来访问元组:

a = 1,2,3,4,5,6,7
print(a[1::2])
输出为:
(2, 4, 6)

修改元组

元组本身是不可修改的,但是如果其中包含的元素可变的话,则可以对该元素内部修改,比如:

a = 1,2,3,[2,3,4]
a[3].append('new')
print(a)
输出为:
(1, 2, 3, [2, 3, 4, 'new'])
虽然a是元组,但是索引3的元素是列表,这时可以对该列表进行修改。

元组运算符

可与使用加号来连接两个元组

a = 1,2,3
b = 4,5,6
c = a + b
print(c)
输出为:
(1, 2, 3, 4, 5, 6)

也可以使用乘号:

a = 1,2,3
b = a*4
print(b)
输出为:
(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)

当然也可以用成员运算符in

通用地可以使用del删除元组

元组相关内置函数

len() 计算元组元素个数。
max() 返回元组中元素最大值
min() 返回元组中元素最小值。

tuple(可迭代对象) 将可迭代对象转换为元组。

r1 = (i**2 for i in range(10))
r2 = range(10)
a = tuple(r1)
b = tuple(r2)
print('a:',a)
print('b:',b)
输出为:
a: (0, 1, 4, 9, 16, 25, 36, 49, 64, 81)
b: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
本例中r1是生成器,r2是可迭代对象。都可以用tuple()转换为元组。
    原文作者:格瑞姆瑞坡
    原文地址: https://segmentfault.com/a/1190000016559694
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞