'''
collections集合增强
namedtuple:
tuple的特性:一旦创建,无法修改.
namedtuple 是在tuple的基础上,创建一个结构化的数据框架.相当于表的列名.列名不可变.
Deque:
相当于java中的linkedlist,特性:查询慢,删除修改快。
Ordereddict:
可以排序的字典,按照插入顺序排序.
Counter:
一个简单的计数器,例如,统计字符出现的个数。
'''
# 定义一个普通的 tuple
from collections import namedtuple, deque, OrderedDict, Counter
tuple = ("1", "2", "3")
# tuple 只能通过角标进行取值
print(tuple[0])
## 定义一个 Namedtuple :需要手动导包 from collections import namedtuple
Point = namedtuple('Point', ['id', 'name', 'age', 'sex'])
# Human=namedtuple(['id','name','age','sex'])
h = Point('1', "小明", '12', '男')
print(h.name)
## 定义 deque :需要手动导包 from collections import deque
linked_list = deque(['1', '2', '3', '4', '5'])
# 获取 deque中的元素,即取出,删除的意思:pop
print(linked_list.pop()) # 取出最后的那个元素
print(linked_list)
print(linked_list.popleft()) # 取出第0位的元素
print(linked_list)
# 添加元素
linked_list.append("99") # 在列表末尾追加元素
print(linked_list)
linked_list.appendleft("00") # 在第0位添加元素,其他元素往后移动
print(linked_list)
## 定义 OrderedDict 【按插入顺序排序】 手动导包:from collections import OrderedDict
map = OrderedDict([(1, 'v1'), (3, 'v3'), (2, 'v2')])
for item in map.items():
print(item)
## 定义 Counter 【计数器】
counter = Counter()
str = "hello world"
for i in str:
counter[i] = counter[i] +1
print(counter)
#自己实现计数器,单词统计
#先定义一个map,python中的字典 dict就是java中的map
map=dict()
str = "HELLO WORLD!"
# 循环字段中的单词
for i in str:
# 判断每次循环出的字符是否在map中存在?
value= map.get(i)
if value == None: # 如果不存在
map[i] = 1 # 直接赋值map中的改字符的value为 1
else:
value += 1 # 如果存在,则value进行累加
map[i] = value # 把最终累加的结果放回到map中
print(map) # 打印map
5---python之collections集合增强练习
最新推荐文章于 2024-10-10 18:18:43 发布