读书笔记:《利用Python进行数据分析》之 Python元组

  •  元组

元组是固定长度、不可变的Python对象序列。

1.生成方法 

自行定义或其他数据结构的转换。

#下列逗号分隔的序列值也可以是元组、列表等
In[1]: tup = 4, 5, 6
In[2]: tup
Out[1]: (4, 5, 6)

#使用tuple函数将序列或迭代器转换为元组
In[1]: tuple([1, 2, 3])
Out[1]: (1, 2, 3)

In[2]: tup = tuple('string')
In[3]: tup
Out[2]: ('s', 't', 'r', 'i', 'n', 'g') 

2.对其不可变特征的理解 

 元组一旦创建,其本身不可修改,append、insert、sort等方法均不可用,但如果元组中的某个对象是可变的,可以在内部对这个对象进行修改。虽然可以使用拷贝或者切片的思想达到改变元组的目的,但其本质都是创建了新的元组。

In[1]: tup = tuple(['foo', [1, 2], false])
In[2]: tup[2] = true     #false是不可变对象,会报错
In[3]: tup[1].append(3)  #实际是对可变对象[1, 2]的操作
In[4]: tup
Out[1]: ('foo', [1, 2, 3], false)

#使用+来连接元组生成更长的元组
In[5]: (4, None) + (2, [3, 4])
Out[2]: (4, None, 2, [3, 4])

3.元组拆包

元组拆包功能可以轻易地交换变量,遍历元组或列表组成的序列以及获取任意长度的位置参数列表。

#拆包方法
In[1]: tup = 1, 2, (3, 4)
In[2]: a, b , (c, d) = tup
In[3]: d
Out[1]: 4

#交换变量
In[1]: a, b = 1, 2
In[2]: a, b = b, a
In[3]: a, b
out[1]: 2, 1

#遍历序列
In[1]: seq = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
In[2]: for a, b, c in seq:
.....: print('a = {0}, b = {1}, c = {2}'.format(a, b, c))
out[1]: a = 1, b = 2, c = 3
        a = 4, b = 5, c = 6
        a = 7, b = 8, c = 9

#使用*变量名获取任意长度列表,可以用于舍弃掉不需要的变量
In[1]: seq = 1, 2, 3, 4, 5
In[2]: a, b, *_ = seq
In[3]: a, b
Out[1]: (1, 2)       #元组
In[4]: _
Out[2]: [3, 4, 5]    #列表

4.元组计数

使用count方法计算某个数值在元组中出现的次数。 

In[1]: value = (1, 2, 3, 4, 5, 4, 4, 4)
In[2]: value.count(4)
Out[1]: 4

​​​​​​wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

你可能感兴趣的:(读书笔记:《利用Python进行数据分析》之 Python元组)