本文主要记录Python元组学习笔记,运行环境为Python3.6。
#一、普通的元组
##元组特点
- 元组是个有序的序列,支持和字符串一样的分片和步距语法。
- 元组和字符串一样是固定的类型,不能替换和删除其中包含的数据项
- 元组中某一项为可变的数据类型对象时,可修改该项对象的值
##创建元组的方法
t=tuple()#空元组
print(type(t))
t=(1,2,3,2,4)
t1=(1,)#一个元素的元组的表示方法,注意连接一个元素的元组时,,号不可少。
##访问元组
print(t[1])
##元组的方法只有t.count(x)和t.index(x)
t.count(2) #统计对象2的个数
print(t.index(4)) #返回4在元组的最左边的位置,4
#元组中不存在X是返回ValueError错误
try:
t.index(5)
except ValueError as err:
print(err)
##元组支持的其它操作符
-
+(连接)、*(赋值)、[](切片)、in和not in(测试成员关系)、其它比较操作符如>=
-
元组常用的一些编码风格,什么时候使用/不使用括号
#元组在二进制操作符左侧或者出现在单值语句右边时可省略括号。
a,b=(1,2)
del a,b
def f(x):
return x,x**2 #返回x和x的平方
print(f(3))
for x,y in ((1,1),(2,4)):
print(x,y)
#二、命名的元组
命名的元组:基本功能和普通的一样,增加可以根据名称引用元组的项,这个功能可以帮助我们创建数据项的聚集
##创建自定义的元组数据类型(命名的元组)
#collections.namedtuple()返回自定义的数据类型
import collections
Sale=collections.namedtuple("Sale","product customerid date quantity price")
#第一参数为自定义的元组数据类型的名称,第二个参数为元组数据中的一项,使用空格分隔
sales=[]
sales.append(Sale(432, 922 ,"2008-01-01", 3,7.99))
sales.append(Sale(433,923,"2008-01-01",4,9.99))
total=0
for sale in sales:
total+=sale.quantity*sale.price
print("Total {0:.2f}".format(total))
##在format函数中访问命名的元组中的某一项方法 3种
print("432quantity:{0}and price:{1}".format(sales[0].quantity,sales[0].price))#使用位置参数
print("432quantity:{0.quantity}and price:{0.price}".format(sales[0]))
##命名元祖的_asdict()方法可以返回键-值的映射
print("432quantity:{quantity}and price:{price}".format(**sales[0]._asdict()))