首页 > 编程语言 >蓝桥Python组标准库collections(2)

蓝桥Python组标准库collections(2)

时间:2024-07-31 12:59:56浏览次数:13  
标签:blue gray OrderedDict Python brr 蓝桥 collections print red

collections

三、defaultdict: 有默认值的字典

在字典中获取一个key有两种方法
第一种get
第二种通过[]获取.
使用dict时,如果引用的key不存在,就会抛出KeyError。
如果希望key不存在时,返回一个默认值,就可以用defaultdict。

from collections import defaultdict

d = defaultdict(int)
print(d['a'])
d = defaultdict(list)
print(d['a'])
d = defaultdict(set)
print(d['a'])
d = defaultdict(dict)
print(d['a'])

print("---------------------------")

arr = [('yellow', 1), ('blue', 3), ('gray', 5), ('black', 7),('red', 9)]
brr = defaultdict(int)
for n, m in arr:
    brr[n] = m
print(brr)
print(brr['gray'])
print(brr['6'])

print("---------------------------")

arr = [('yellow', 1), ('blue', 3), ('yellow', 5), ('blue', 7),('red', 9)]
brr = defaultdict(list)
for n, m in arr:
    brr[n].append(m)
print(brr)
print(brr['yellow'])
print(brr['6'])

print("-----------------------------")

arr = [('yellow', 1), ('blue', 3), ('yellow', 5), ('blue', 7),('red', 9)]
brr = {}
for n, m in arr:
    if n not in brr.keys():
        brr[n] = []
    brr[n].append(m)
print(brr)
#print(brr['6'])

输出

0
[]
set()
{}
---------------------------
defaultdict(<class 'int'>, {'yellow': 1, 'blue': 3, 'gray': 5, 'black': 7, 'red': 9})
5
0
---------------------------
defaultdict(<class 'list'>, {'yellow': [1, 5], 'blue': [3, 7], 'red': [9]})
[1, 5]
[]
-----------------------------
{'yellow': [1, 5], 'blue': [3, 7], 'red': [9]}

四、OrderedDict: 有序字典

key按照插入的顺序排序,与字典基本一致
popitem()函数python3.7以上版本删除最后一个元素返回

OrderedDict: 可以指定参数last,last默认为True,删除最后一个。False删除第一个。

from collections import OrderedDict

arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)

while len(brr) != 0:
    print("删除的元素: ",brr.popitem())
    print("删除后的的brr: ", brr)

print("------------------------")

arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)

while len(brr) != 0:
    print("删除的元素: ",brr.popitem(False))
    print("删除后的的brr: ", brr)

print("------------------------")

arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)

while len(brr) != 0:
    print("删除的元素: ",brr.popitem(True))
    print("删除后的的brr: ", brr)

print("----------------------")

arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = dict(arr)
print(brr)

while len(brr) != 0:
    print("删除的元素: ",brr.popitem())
    print("删除后的的brr: ", brr)

输出

OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
删除的元素:  ('gray', 5)
删除后的的brr:  OrderedDict([('red', 1), ('blue', 3)])
删除的元素:  ('blue', 3)
删除后的的brr:  OrderedDict([('red', 1)])
删除的元素:  ('red', 1)
删除后的的brr:  OrderedDict()
------------------------
OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
删除的元素:  ('red', 1)
删除后的的brr:  OrderedDict([('blue', 3), ('gray', 5)])
删除的元素:  ('blue', 3)
删除后的的brr:  OrderedDict([('gray', 5)])
删除的元素:  ('gray', 5)
删除后的的brr:  OrderedDict()
------------------------
OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
删除的元素:  ('gray', 5)
删除后的的brr:  OrderedDict([('red', 1), ('blue', 3)])
删除的元素:  ('blue', 3)
删除后的的brr:  OrderedDict([('red', 1)])
删除的元素:  ('red', 1)
删除后的的brr:  OrderedDict()
----------------------
{'red': 1, 'blue': 3, 'gray': 5}
删除的元素:  ('gray', 5)
删除后的的brr:  {'red': 1, 'blue': 3}
删除的元素:  ('blue', 3)
删除后的的brr:  {'red': 1}
删除的元素:  ('red', 1)
删除后的的brr:  {}

move_to_end(key, last=True)函数

from collections import OrderedDict

arr = [('red', 1), ('blue', 3), ('gray', 5)]
brr = OrderedDict(arr)
print(brr)

brr.move_to_end('red')
print("将red移动到右端", brr)

brr.move_to_end('gray',False)
print("将gray移动到左端", brr)

brr.move_to_end('blue',True)
print("将blue移动到右端", brr)

输出

OrderedDict([('red', 1), ('blue', 3), ('gray', 5)])
将red移动到右端 OrderedDict([('blue', 3), ('gray', 5), ('red', 1)])
将gray移动到左端 OrderedDict([('gray', 5), ('blue', 3), ('red', 1)])
将blue移动到右端 OrderedDict([('gray', 5), ('red', 1), ('blue', 3)])

标签:blue,gray,OrderedDict,Python,brr,蓝桥,collections,print,red
From: https://blog.csdn.net/2301_76430784/article/details/140819439

相关文章

  • 基于python电商个性化推荐系统【源码+文档+PPT】
    精彩专栏推荐订阅:在下方专栏......
  • 探索 Python 的广泛应用:从开发到数据科学
    目录引言Python的发展历史Python的特点Python在Web开发中的应用Django框架Flask框架其他Web框架Python在数据科学中的应用数据分析机器学习深度学习Python在自动化和脚本编写中的应用系统管理和自动化网络爬虫Python在游戏开发中的应用PygamePython在......
  • 碰撞检测 | 矩形增量膨胀安全走廊模型(附C++/Python仿真)
    目录0专栏介绍1安全走廊建模的动机2矩形增量膨胀算法3算法仿真3.1C++实现3.2Python实现0专栏介绍......
  • python - 构建奇点容器时在 pyproject.toml 中找不到 [tool.poetry] 部分
    我正在尝试构建一个在HPC环境上运行的奇点容器。我正在使用poetry来管理python包。我的pyproject.toml文件的内容如下:[tool.poetry]name="haqc"version="0.1.0"description=""authors=["VivekKatial<[email protected]>"......
  • 如何在Python中处理FileNotFoundException
    我有一个函数可以从路径读取avro文件(按日文件夹)并将其写入相同的路径(聚合到按月的文件夹)。如果文件夹有.avro文件,该函数可以正常工作。但如果文件夹为空,我会收到错误。java.io.FileNotFoundException:Noavrofilesfound.Iffilesdon'thave.avroextension,set......
  • 有谁知道如何在 ROS 中使用 python 开发赛车模拟编码?
    在模拟中,主要目标是让自动驾驶汽车读取AprilTags并根据标牌提供的说明进行导航。AprilTags是一种基准标记,可作为重要的视觉提示,传达有关汽车周围环境的信息,例如方向、速度限制和其他关键路标。汽车的车载视觉系统应该检测这些标签,解码嵌入的数据,并相应地调整其运动。这包括在......
  • python实现提取视频帧的图片
    文章目录1、需求痛点2、完整代码⭐3、代码分析3.1、需要改动的地方3.2、OpenCV库的使用3.3、多线程技术4、执行效率5、效果展示⭐6、注意事项......
  • 三种语言实现差分(C++/Python/Java)
    题目输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l,r,c表示将序列中[l,r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表......
  • Python编程的16个坏习惯
    1、手动进行字符串格式化#坏习惯name="Alice"greeting = "Hello, " + name +"!" #好习惯name="Alice"greeting=f"Hello,{name}!" 理由:使用+进行字符串拼接会导致代码可读性差,而且在复杂情况下容易出错,f-string可读性更好 2、手动关闭文件#坏习惯......
  • Flask框架入门:快速搭建轻量级Python网页应用
    转载: Flask框架入门:快速搭建轻量级Python网页应用1. Flask基础Flask是一个使用Python编写的轻量级Web应用框架。它的设计目标是让Web开发变得快速简单,同时保持应用的灵活性。Flask依赖于两个外部库:Werkzeug和Jinja2,Werkzeug作为WSGI工具包处理Web服务的底层细节,Jinja2作为......