【脚本语言系列】关于Python基础知识容器,你需要知道的事

如何使用容器

  • defaultdict
# -*- coding:utf-8 -*-
from collections import defaultdict

names = (
("Allen","Moore"),
("Alan","Moore"),
("Ellen","Moore"),
)

used_names = defaultdict(list)

for firstname, lastname in names:
    used_names[firstname].append(lastname)

print used_names
defaultdict(<type 'list'>, {'Allen': ['Moore'], 'Ellen': ['Moore'], 'Alan': ['Moore']})
# -*- coding:utf-8 -*-
import collections, json
tree = lambda: collections.defaultdict(tree)
the_dict = tree()
the_dict["Name"]["Firstname"] = "Allen"

print json.dumps(the_dict)
{"Name": {"Firstname": "Allen"}}
  • counter
# -*- coding:utf-8 -*-
from collections import Counter

names = (
("Allen","Moore"),
("Alan","Moore"),
("Ellen","Moore"),
)

the_names = Counter(firstname for firstname, name in names)
print the_names
Counter({'Allen': 1, 'Ellen': 1, 'Alan': 1})
with open("filename.txt", 'rb') as f:
    line_count = Counter(f)
print line_count
---------------------------------------------------------------------------

IOError                                   Traceback (most recent call last)

<ipython-input-16-097d520b5525> in <module>()
----> 1 with open("filename.txt", 'rb') as f:
      2     line_count = Counter(f)
      3 print line_count


IOError: [Errno 2] No such file or directory: 'filename.txt'
  • deque
# -*- coding:utf-8 -*-
from collections import deque

d = deque()
d.append('12')
d.append('23')
d.append('34')

print len(d)
print d[0], d[1], d[-1]
# -*- coding:utf-8 -*-
d = deque(range(10))
print len(d)
print d[0], d[1], d[-1], d

d.popleft()
print d[0], d[1], d[-1], d

d = deque(range(10))
print len(d)
print d[0], d[1], d[-1], d

d.pop()
print d[0], d[1], d[-1], d
# -*- coding:utf-8 -*-
d = deque(range(10))
d.extendleft([-3, -2, -1])
d.extend([10, 11, 12])
print len(d)
print d
16
deque([-1, -2, -3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
# -*- coding:utf-8 -*-
d = deque(maxlen=(10))
d.extendleft(range(-10,0))
print d
d.extend(range(5))
print d
d.extend(range(3))
print d
d.extendleft(range(-3, 0))
print d
d.extendleft(range(-5, 0))
print d
deque([-1, -2, -3, -4, -5, -6, -7, -8, -9, -10], maxlen=10)
deque([-6, -7, -8, -9, -10, 0, 1, 2, 3, 4], maxlen=10)
deque([-9, -10, 0, 1, 2, 3, 4, 0, 1, 2], maxlen=10)
deque([-1, -2, -3, -9, -10, 0, 1, 2, 3, 4], maxlen=10)
deque([-1, -2, -3, -4, -5, -1, -2, -3, -9, -10], maxlen=10)
  • namedtuple
# -*- coding:utf-8 -*-
from collections import namedtuple

Id = namedtuple('ID','Name, Age, Job')
the_id = Id(Name='AllenMoore',Age = 29, Job="Design")

print the_id
print the_id.Name
print the_id.Age
print the_id.Job
ID(Name='AllenMoore', Age=29, Job='Design')
AllenMoore
29
Design
# -*- coding:utf-8 -*-
from collections import namedtuple

Id = namedtuple('ID','Name, Age, Job')
the_id = Id(Name='AllenMoore',Age = 29, Job="Design")

print the_id
print the_id._asdict()
ID(Name='AllenMoore', Age=29, Job='Design')
OrderedDict([('Name', 'AllenMoore'), ('Age', 29), ('Job', 'Design')])
  • enum.Enum
# -*- coding:utf-8 -*-
from collections import namedtuple
from enum import Enum

class Ids(Enum):
    Arting = 0
    Engineer = 1
    Science = 2
    Manage = 3
    Religous = 4

    Drawing = 0
    Design = 0
Id = namedtuple('ID','Name, Age, Job')
the_Allen = Id(Name='Allen',Age = 29, Job=Ids.Arting)
the_Moore = Id(Name='Moore',Age = 29, Job=Ids.Science)
the_Ellen = Id(Name='Ellen',Age = 29, Job=Ids.Drawing)

print Ids(0)  
print Ids['Drawing']
print Ids.Drawing
Ids.Arting
Ids.Arting
Ids.Arting

什么是容器

容器,是Python的模块,包含许多容器数据类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值