首页 > 编程语言 >Python数据容器(dict字典、set集合)

Python数据容器(dict字典、set集合)

时间:2024-07-13 17:29:21浏览次数:15  
标签:set Python 集合 dict print my 字典

dic字典

dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

字典的创建使用大括号 {} 包含键值对,并用冒号 : 分隔键和值,形成 键:值 对。

字典的特性

  • 唯一键:字典中的每个键都必须是唯一的。值可以取任何数据类型,如字符串,数字,元组。
  • 无序(Python 3.6 之前的版本):在 Python 3.6 之前的版本中,字典是无序的。但从 Python 3.7 开始,字典保持插入顺序。
  • 可变:字典是可变的,可以添加、删除或修改键值对。
  • 内置方法:字典提供了许多内置方法,如 get()update()clear() 等,用于执行各种操作。

字典的基本操作

创建字典

可以使用花括号 {} 创建一个字典,并用冒号 : 分隔键和值,用逗号 , 分隔键值对。

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

访问字典中的值

使用键来访问字典中的值。

print(my_dict['name'])  # 输出: John

为什么dict查找速度这么快?

因为dict的实现原理和查字典是一样的。

假设字典包含了1万个汉字,需要在其中查询某一个字

第一种方式是把字典从第一页往后翻,直到找到所需的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。

第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢,dict字典就是该种方式。

添加或修改键值对

如果键已存在,则更新其值;如果键不存在,则添加新的键值对。

my_dict['age'] = 31  # 修改  
my_dict['job'] = 'Engineer'  # 添加

删除键值对

使用 del 语句或 pop() 方法删除键值对。

del my_dict['city']  # 删除键值对  
job = my_dict.pop('job', 'Not found')  # 删除并返回'job'的值,如果'job'不存在则返回'Not found'

检查键是否存在

使用 in 关键字检查键是否存在于字典中。

if 'name' in my_dict:  
    print("Key exists")

一些字典中的方法

dict_a = {1: 2, 2: 3, True: False, "a": "b", (1, 2): [3, 4]}
print(dict_a.keys())   # 返回所有的key
# 输出:dict_keys([1, 2, 'a', (1, 2)])

print(dict_a.values()) # 返回所有的value
# 输出:dict_values([False, 3, 'b', [3, 4]])

# item 将键值对以二元组的形式返回出来
print(dict_a.items())
# 输出:dict_items([(1, False), (2, 3), ('a', 'b'), ((1, 2), [3, 4])])

# get:通过key获取value,还可以指定当key不存在时返回一个默认值
print(dict_a.get("a", "没有这个键"))   # 输出:b
print(dict_a.get("c", "没有这个键"))   # 输出:没有这个键

# popitem 弹出一个键值对,弹出后字典中就没有了
print(dict_a.popitem())   # 输出:((1, 2), [3, 4])
print(dict_a)             # 输出:{1: False, 2: 3, 'a': 'b'}

# clear:清空字典
print(dict_a.clear())   # 输出:None

set集合

在Python中,set 是一个无序的、不包含重复元素的数据集合。它主要用于进行数学上的集合操作,如并集、交集、差集和对称差集等。set 集合可以用来快速地进行成员关系测试和删除重复元素。

创建集合

你可以使用大括号 {} 或者 set() 函数来创建集合。但是,请注意,当你使用大括号 {} 时,如果里面没有任何元素,Python 会将其解释为一个空字典,而不是空集合。因此,为了创建一个空集合,你应该使用 set()

# 使用大括号创建集合  
my_set = {1, 2, 3, 4}  
  
# 使用 set() 函数创建集合  
another_set = set([1, 2, 3, 4])  
  
# 创建一个空集合  
empty_set = set()

集合操作

集合支持多种操作,包括但不限于:

  • 并集 (| 或 union()):返回两个集合的并集,即包含所有不重复的元素。
  • 交集 (& 或 intersection()):返回两个集合的交集,即两个集合中都有的元素。
  • 差集 (- 或 difference()):返回集合的差集,即存在于第一个集合中但不在第二个集合中的所有元素。
  • 对称差集 (^ 或 symmetric_difference()):返回两个集合的对称差集,即存在于一个集合中但不同时存在于两个集合中的所有元素。
# 并集  
set1 = {1, 2, 3}  
set2 = {3, 4, 5}  
union_set = set1 | set2  # 或 set1.union(set2)  
print(union_set)  # 输出: {1, 2, 3, 4, 5}  
  
# 交集  
intersection_set = set1 & set2  # 或 set1.intersection(set2)  
print(intersection_set)  # 输出: {3}  
  
# 差集  
difference_set = set1 - set2  # 或 set1.difference(set2)  
print(difference_set)  # 输出: {1, 2}  
  
# 对称差集  
symmetric_difference_set = set1 ^ set2  # 或 set1.symmetric_difference(set2)  
print(symmetric_difference_set)  # 输出: {1, 2, 4, 5}

集合的方法

set 类型提供了许多内置方法来执行常见的集合操作,比如添加元素 (add())、删除元素 (remove() 或 discard())、检查元素是否存在 (in 关键字)、更新集合 (update())、清空集合 (clear())、计算集合的长度 (len() 函数) 等。

my_set = {1, 2, 3}  
  
# 添加元素  
my_set.add(4)  
print(my_set)  # 输出: {1, 2, 3, 4}  
  
# 删除元素  
my_set.remove(2)  # 如果元素不存在,会抛出 KeyError  
# 或者使用 discard(),如果元素不存在,不会抛出异常  
my_set.discard(5)  
print(my_set)  # 输出: {1, 3, 4}  
  
# 检查元素是否存在  
if 3 in my_set:  
    print("3 is in the set")  
  
# 更新集合  
my_set.update([3, 4, 5, 6])  # 注意:这不会添加重复元素  
print(my_set)  # 输出: {1, 3, 4, 6}  
  
# 清空集合  
my_set.clear()  
print(my_set)  # 输出: set()  
  
# 计算集合的长度  
print(len(my_set))  # 输出: 0


# 补充
# pop:随机移除一个元素,因为set集合是无序的
set_d = {4, 5, 6, 7, 8, 9}
print(set_d.pop())   
print(set_d)

标签:set,Python,集合,dict,print,my,字典
From: https://blog.csdn.net/weixin_73504499/article/details/140395476

相关文章

  • Python 潮流周刊#60:Python 的包管理工具真是多啊(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了13篇文章,13个开源项目,全文2300字。重要提醒:1、本专栏的......
  • python获取Android App性能数据(CPU、GPU、内存、电池、耗电量)
    原文链接:https://blog.csdn.net/u012089395/article/details/1266689461、原理python脚本通过os.popen()方法运行adb命令,获取性能数据,将性能数据保存在csv文件并算出均值、最大值、最小值。本脚本可测试一个app包含多个进程的场景,可以获取每个进程的性能数据。2、环境准备:2.1软......
  • python remote
    #!/usr/bin/python#-*-coding:utf-8-*-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@auhorbyruiy####pipinstallparamiko-ihttps://pypi.tuna.tsinghua.edu.cn/simple##pipinstallpsutil-ihttps://py......
  • python paramiko remote 采集监控信息
    #!/usr/bin/python#-*-coding:utf-8-*-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#@auhorbyruiy####pipinstallparamiko-ihttps://pypi.tuna.tsinghua.edu.cn/simple##pipinstallpsutil-ihttps://py......
  • Python—学生信息管理系统(附源码)
    今天所要分享的文章是关于如何实现学生管理系统,有需要的朋友可以参考一下,希望可以帮到大家!文章目录一、开始界面实现1.定义主函数2.运用循环,获取用户需求二、函数实现各个模块功能1.添加学生信息2.展示学生信息3.查找学生信息4.删除学生信息5.退出程序三、把......
  • 基于Python酒店评论情感分析可视化系统
    专业技术开发,收藏关注不迷路文章目录一、项目介绍二、开发环境三、功能介绍四、效果图五、文章目录一、项目介绍随着电商网络经济的兴起,更多的人选择在线上预订酒店出行,电商旅游平台使得旅行者可以通过评论更加自由地选择价格和服务合意的酒店,同时也给人们提供了......
  • Python数据容器(1)--列表与元组
    数据容器在Python中,数据容器是指能够存储多个数据项(可以是不同类型的数据)的数据结构。Python提供了多种内置的数据容器类型,每种类型都有其特定的用途和特性。Python中最常用的数据容器有:List列表、Tuple元组、Dictionary字典、Set集合。本篇我们来介绍其中的List列表和Tuple......
  • 【Python】jupyter notebook平台的使用·
    目录一、安装Anaconda二、将BreadCancer.zip上传到jupyter notebook平台中三、了解BreadCancerClassifier.ipynb文件在jupyternotebook的单元格中的python代码,并运行。3.1 导入mainFun文件3.2 读入数据3.3开始训练3.4读入测试数据3.5 开始测试3.6 开始统计3......
  • 【Python】基础语法
    目录一、思考if__name__==”__main__”的意思和作用1.先执行comparenumber.py 2.再看test.py3._name_的意思4._name_的作用二、重要语法“tab”的作用1.test012.test02三、元组数据结构的创建和使用1.创建元组 2.访问元组的元素3.操作元组四、列表数......
  • python基础篇总结:数据类型
    在python中数据类型主要是以下9种分别是1.Int(整型);2.Float(浮点型);3.Bool(布尔型);4.Str(字符串);5.None(空值);6.List(列表);7.Tuple(元组);8.Dict(字典);9.Set(集合)等。一.Int(整数)整数是Python中最基本的数值类型,用于表示整数值。1.定义整数变量:2.使用内置函数处理整数:3.进行算......