python数据结构----2
namedtup,
标准tuple使用数值索引方式来访问其成员如下:
bob=('bob',30,'male')
print bob
jane =('jane',29,'feamle')
for p in [bob, jane]:
print '%s is a %d year old %s' % p
namedtuple可以使用索引值还可以使用名字指定值,
import collections
person = collections.namedtuple('person','name age bo gender')
print 'Type of person:',type(person)
bob = person(name='bob',age=30,gender='male')
print '\nRepresentation:', bob
jane = person(name='jane',age=29,gender='female')
print '\nfield by name:',jane.name
print '\n fields by index:'
for p in [bob,jane]
print '%s is a %d year old %s' % p
当出现非法字段名的时候会抛出valueError异常如下:
try:
collections.namedtuple('person','name age gender age')
except ValueError, err:
print err
Encountered duplicate field name: 'age'
声明namedtuple对象时可以使用rename=True属性设在自动对重复字段进行重命名,如下:
with_ages = collections.namedtuple(
'person','name class age gender',
rename=True)
print with_ages._fields
('name', '_1', 'age', 'gender')
OrderdDict
OrderedDict是一个字典子类,记住内容增加的顺序。
d = {}
d['a']='A'
d['b']='B'
d['c']='C'
for k, v in d.items():
print k, va A
c C
b B
常规dict
并不跟踪插入顺序,迭代处理时会根据键在散列表中存储的顺序来生成值。在OrderedDict中则相反,他会记住元素插入的顺序,并在创建迭代器时使用这个顺序。示例如下:dd =collections.OrderedDict()
dd['a']='A'
dd['b']='B'
dd['c']='C'
for k, v in dd.items():
print k, v
a A
b B
c C
array——固定类型数据序列
高效管理固定类型数值数据的序列
可以使用读写文件的专用内置方法将数组的内容写入文件,或从文件读取内容。