python 数据结构--Tuple(元组)

1 Tuple(元组)

Python的元组与列表类似,不同之处在于元组的元素不能修改(前面多次提到的字符串也是不能修改的)。创建元组的方法很简单:如果你使用逗号分隔了一些值,就会自动创建元组。

1.1 创建元组

1,2,3

(1, 2, 3)

('hello', 'world')

('hello', 'world')

() #  空元组

()

(1,) #  逗号不能少

(1,)

tuple('hello,world')  # tuple 函数创建元组

('h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd')

# tuple('hello','world')
#---------------------------------------------------------------------------
#TypeError                                 Traceback (most recent call last)
#<ipython-input-13-b3c1d433db80> in <module>()
#----> 1 tuple('hello','world')
#
#TypeError: tuple() takes at most 1 argument (2 given)
tuple(['hello', 'world'])

('hello', 'world')

1.2 元组的基本操作

1.2.1 访问元组

mix = (123,456,'hello','apple')
mix[1]

456

mix[0:3]

(123, 456, 'hello')

1.2.2 修改元组

元组中的元素值不允许修改,但可以对元组进行连接组合。

a = (123,456)
b = ('abc','def')
a+b

(123, 456, 'abc', 'def')

1.2.3 删除元组

元组中的元素值不允许删除,但可以使用del语句删除整个元组。

num = (1,2,3,4,5,6)
# del num[1]    #TypeError: 'tuple' object doesn't support item deletion
del num
# num          # NameError: name 'num' is not defined

1.2.4 元组索引、截取

因为元组也是一个序列,所以可以访问元组中指定位置的元素,也可以截取索引中的一段元素

string = ('number','string', 'list', 'tuple','dictionary')
string[2]

'list'

string[-2]

'tuple'

string[2:-2]

('list',)

1.2.5 元组内置函数

Python元组提供了一些内置函数,如计算元素个数、返回最大值、返回最小值、列表转换等函数。

tup = (1,2,3,4,5,6,7,8,9,10)

len(tup)

10

max(tup)

10

min(tup)

1

num = [1,2,3,4,5]
tup = tuple(num)
tup

(1, 2, 3, 4, 5)

1.3 元组和列表的区别

因为元组不可变,所以代码更安全。如果可能,能用元组代替列表就尽量用元组。列表与元组的区别在于元组的元素不能修改,元组一旦初始化就不能修改。

t = ('a','b',['A','B'])
t

('a', 'b', ['A', 'B'])

t[2]

['A', 'B']

t[2][0]

'A'

t[2][1]

'B'

t[2][0] = 'X'  
t[2][1] = 'Y'
t[2]

['X', 'Y']

元组的第三个元素为t[2],t[2] 是一个列表,修改时,是修改的列表中的值,这个列表还是原来的列表,及元组中的值不变,变化的是列表中到的元素。

1.4 元组和列的相互转化

tup =  (1,2,[3,4],(5,6))
tup

(1, 2, [3, 4], (5, 6))

list(tup)

[1, 2, [3, 4], (5, 6)]

list(tup[3])

[5, 6]

tuple(list(tup))

(1, 2, [3, 4], (5, 6))

tuple(tup[2])

(3, 4)

posted @ 2020-04-09 10:56  sinlearn  阅读(265)  评论(0)    收藏  举报