元组
元组是一个有序的序列,包括0-多个对象序列。元组是固定的,不能对其进行修改及删除其中的数据项。
元组的创建
- 1、tuple() #创建一个空的元组
- 2、tuple("ABCD") #('A','B','C','D')
-
3、() #创建空元组
-
4、('A','B','C')
-
5、t = 'A','B','C'
t.count('A')
返回'A'在元组t中出现的次数
t.index('B')
返回'B'在元组t中最左出现的位置,如果元组中不包括'B'则 报错ValueError
元组支持连接(+) 赋值(*) 分片([])以及in not in操作
- t + tuple("XYZ") #('A', 'B', 'C', 'X', 'Y', 'Z')
-
t[2] #C
-
t[2:-1] #('C', 'X', 'Y')
-
'Y' in t #True
-
'y' in t #False
-
G not in t #True
-
t[:2] + ("I",) + t[2:] #('A', 'B', 'I', 'C', 'X', 'Y', 'Z')
-
a,b = t[:2] # a,b -> ('A', 'B')
命名的元组
命名的元组与普通的元组一样,有相同的特征,其特殊的地方在于我们可以通过名称来访问数据项。
import collections
products = []
product = collections.namedtuple('product', 'name price size pic desc')
products.append(product('iphone', 1000, 128, 'xxx.pic', 'iphone'))
products.append(product('ipad', 1000, 128, 'xxx.pic', 'ipad'))
for product in products:
print("{name} {price} {size}".format(**product._asdict()))
>>> ipad 1000 128
iphone 1000 128
命名的元组还可以进行嵌套
article = collections.namedtuple('article', 'title type setting')
setting = collections.namedtuple('setting', 'hot top')
a = article('title', 1, setting(1,2))
a.setting.top
>>>2
阅读(2875) | 评论(2) | 转发(1) |