5---python之collections集合增强练习

'''
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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值