序列拆分: for x,y in ((-3,4),(5,12),(28,-45)): print(math.hypot(x,y))命名的元组:collection.namedtuple("元组名","索引名1 索引名2 ...") Sale=colections.namedtuple("Sale","productid customerid date quantity price") sales=[] sales.append(Sale(432,921,"2008-09-14",3,7.99))sales.append(Sale(419,874,"2008-09-15",1,18.49)) print("{0:.2f}".format(sale.quantity*sale.price)) #使用索引名称引用 namedtuple._asdict()返回键值对映射,用**将映射拆分转换为str.format()方法的键-值参数 “{quantity}{price}”.format(**sale._asdict()) 任意可以迭代的(列表、元组等)数据类型都可以使用序列拆分操作符进行拆分,即*。赋值操作符左边的两个或多个变量时,其中的一个使用*进行引导,数据项将赋值给该变量,而所有剩下的数据项将赋值给带*号的变量: first,*rest=[9,2,-4,8,7] #(9,[2,-4,8,7]) L=[2,3,4]product(*L) # 等价于product(2,3,4) 列表内涵:[expression for item in iterable if condition] 固定集合只能用frozenset()数据类型函数进行创建,如果二元运算符应用于集合和固定集合,那么产生结果的数据类型与左边操作数的类型一致,如果f是固定集合,s是集合,f&s将产生固定集合,s&f产生一个集合。因为固定集合不可更改,所以可以作为子项包含进集合。 集合内涵:{expression for item in iterable if condition} 字典创建方法: dict({"id":1948,"name":"washer","size":3}) dict(id=1948,name="washer",size=3) #使用关键字参数创建dict([("id",1948),("name":"washer"),("size":3)]) #从列表创建 字典内涵:{keyexpression:valueexpression for key,value in iterable if condition} 默认字典:collections.defaultdict(int) #int为工厂函数,创建默认值 words=collections.defaultdict(int) x=words["xyz"] #将调用int()将键"xyz"对应的值初始化为0有序字典:collections.OrderedDict(('z',-4),('e',19),('k',7)) 改变值的时候顺序不会改变。 |
|