咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 314|回复: 0

[python] 了解一下python内建模块collections

[复制链接]
  • TA的每日心情
    无聊
    2019-5-27 08:20
  • 签到天数: 4 天

    [LV.2]圆转纯熟

    发表于 2020-10-4 12:27:02 | 显示全部楼层 |阅读模式
    在使用Python的过程中,一定是离不开数据结构的, 也就是List-列表,Tuples-元组,Dictionaries-字典。
    那实际应用中我们更多的还是要去操作这些结构里的数据。比如,在列表后面添加元素,那么就会用到append() 方法。
    那除了这些本身的操作方法之外,还有一个Python内建模块——collections,也提供了不少使用的方法,今天来捋一下。
    一、Counter
    这是一个计数器,我们可以用来方便的统计出一些元素出现的次数,比如String、List、Tuples等等。
    String
    1. from collections import Counter
    2. c = Counter("HelloKitty")
    3. print(c)
    4. #运行结果:
    5. Counter({'l': 2, 't': 2, 'H': 1, 'e': 1, 'o': 1, 'K': 1, 'i': 1, 'y': 1})
    复制代码
    List
    1. from collections import Counter
    2. c = Counter(["苹果", "樱桃", 1, 1, 4, 4, 5])
    3. print(c)
    4. #运行结果:
    5. Counter({1: 2, 4: 2, '苹果': 1, '樱桃': 1, 5: 1})
    复制代码
    二、deque
    我们很喜欢用list来存放数据,因为非常的方便。但是list的缺点也很明显,如果你是按索引访问元素就很快,但是插入和删除元素就很慢。
    当然了,数据量小的时候肯定是感知不到的,只有当数据量大的时候,你才会发现这个缺点,因为list是线性数据结构,比如插入这个动作,需要把它后面的元素都挪一位。
    deque除了实现list的append()和pop()外,还提供了appendleft()和popleft(),这样的话我们可以很方便的向着列表的另一头,进行添加和移除操作了。
    1. from collections import deque
    2. deque_list = deque(['a', 'b', 'c', 'd'])
    3. deque_list.append('苹果')
    4. deque_list.appendleft('吃')
    5. print(deque_list)
    6. #运行结果:
    7. deque(['吃', 'a', 'b', 'c', 'd', '苹果'])
    复制代码
    三、OrderedDict
    使用Python,大家自然知道Dict字典中的key是无序的。那如果你想要保持key的顺序的话,用OrderedDict即可。
    1. from collections import OrderedDict
    2. list_a = [(1, "苹果"), (2, "香蕉"), (3, "西瓜"), (4, "芒果")]
    3. order_dict = OrderedDict(list_a)
    4. print(order_dict)
    5. #运行结果:
    6. D:\Daily
    7. λ python whatiscollections.py
    8. OrderedDict([(1, '苹果'), (2, '香蕉'), (3, '西瓜'), (4, '芒果')])
    复制代码
    如果有场景中需要使用到,可以试试这几种用法。
    以上就是了解一下python内建模块collections的详细内容,更多关于python collections的资料请关注咔叽论坛其它相关文章!

    原文地址:https://www.jb51.net/article/195074.htm

    QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

    GMT+8, 2024-3-29 18:06

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表