百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python字典、集合和深浅拷贝(python字典与集合区别)

off999 2024-10-29 15:00 26 浏览 0 评论

什么是字典?

字典 Python内置的数据结构之一,与列表一样是一个可变序列 以键值对的方式存储数据,字典是一个无序的序列。

字典的实现原理与查字典类似,查字典是先根据部首或拼音查找汉字对应的页码,Python中的字典是根据key查找value所在的位置。

info = {"name":"薛定谔的猫", "age":25}
print(info)
print(info.get("height"))

# info2 = dict(name="cat", age=26)
# print(info2)

# print("name2" in info)

info["height"] = 182
print(info)

del info["height"]
print(info)

print(info.keys())
print(info.values())
print(info.items())

for i in info.items():
    print(i)

1. 字典中的所有元素都是一个 key-value对,key不允许重复, value可以重复

2. 字典中的元素是无序的

3. 字典中的key必须是不可变对象

4. 字典也可以根据需要动态地伸缩

5. 字典会浪费较大的内存,是一种使用空间换时间的数据结构。

字典生成式

items = ["Fruits", "Books", "Others"]
prices = [80, 90, 100, 110, 120]

d = zip(items, prices)
print(list(d))

d = {item.upper():price for item,price in zip(items,prices)}
print(d)

什么是集合?

集合是Python语言提供的内置数据结构,与列表、字典一样都属于可变类型的序列,集合是没有value的字典

集合相关操作:

集合元素的判断操作:in或not in

集合元素的新增操作:

1. 调用add()方法,一次添加一个元素

2. 调用update()方法至少添加一个元素

集合元素的删除操作:

1. 调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出KeyError

2. 调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛异常

3. 调用pop()方法,一次只删除一个任意元素

4. 调用clear()方法,清空集合

s = {2, 3, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7}
print(s)

s1 = set(range(6))
print(s1, type(s1))

s2 = set([1, 2, 3, 4, 8 ,9])
print(s2, type(s2))

s3 = set('python')
print(s3, type(s3))

s4 = set()
s4.add(10)
print(s4)

s4.update([90, 100, 20, 30, 40])
print(s4)

s4.pop()
print(s4)

s4.pop()
print(s4)

集合间的关系

两个集合是否相等 :可以使用运算符==或!=进行判断

一个集合是否是另一个集合的子集:issubset

一个集合是否是另一个集合的超集:issuperset

两个集合是否没有交集:isdisjoint

s = {10, 20, 30, 40}
s2 = {30, 40, 50, 60}
# print(s.issubset(s2))
# print(s2.issuperset(s))

print(s.intersection(s2))
print(s & s2)

print(s.union(s2))
print(s | s2)

print(s.difference(s2))
print(s - s2)

print(s.symmetric_difference(s2))
print(s ^ s2)

s = {i * i for i in range(1, 6)}
print(s)

深浅拷贝

  • 直接赋值:其实就是对象的引用(别名)。
  • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
  • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

1、b = a: 赋值引用,a 和 b 都指向同一个对象。

2、b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。

b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。

import copy

li1 = [1, 2, 3]
li2 = copy.copy(li1)
li1[0] = "hello"
print(li1, id(li1))
print(li2, id(li2))

li3 = [[11, 22, 33], [44, 55, 66]]
li4 = copy.copy(li3)
li3[0][0] = 99
print(li3, id(li3))
print(li4, id(li4))

li5 = [[11, 22, 33], [44, 55, 66]]
li6 = copy.deepcopy(li5)
li6[0][0] = 88
print(li5, id(li5))
print(li6, id(li6))

相关推荐

pip的使用及配置_pip怎么配置

要使用python必须要学会使用pip,pip的全称:packageinstallerforpython,也就是Python包管理工具,主要是对python的第三方库进行安装、更新、卸载等操作,...

Anaconda下安装pytorch_anaconda下安装tensorflow

之前的文章介绍了tensorflow-gpu的安装方法,也介绍了许多基本的工具与使用方法,具体可以看Ubuntu快速安装tensorflow2.4的gpu版本。pytorch也是一个十分流行的机器学...

Centos 7 64位安装 python3的教程

wgethttps://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz#下载指定版本软件安装包tar-xzfPython-3.10.1...

如何安装 pip 管理工具_pip安装详细步骤

如何安装pip管理工具方法一:yum方式安装Centos安装python3和python3-devel开发包>#yuminstallgcclibffi-develpy...

Python入门——从开发环境搭建到hello world

一、Python解释器安装1、在windows下步骤1、下载安装包https://www.python.org/downloads/打开后选择【Downloads】->【Windows】小编是一...

生产环境中使用的十大 Python 设计模式

在软件开发的浩瀚世界中,设计模式如同指引方向的灯塔,为我们构建稳定、高效且易于维护的系统提供了经过验证的解决方案。对于Python开发者而言,理解和掌握这些模式,更是提升代码质量、加速开发进程的关...

如何创建和管理Python虚拟环境_python怎么创建虚拟环境

在Python开发中,虚拟环境是隔离项目依赖的关键工具。下面介绍创建和管理Python虚拟环境的主流方法。一、内置工具:venv(Python3.3+推荐)venv是Python标准...

初学者入门Python的第一步——环境搭建

Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的。今天千锋武汉Python培训小编将带领Python零基础的初学者完成入门的第一步——环境搭建...

全网最简我的世界Minecraft搭建Python编程环境

这篇文章将给大家介绍一种在我的世界minecraft里搭建Python编程开发环境的操作方法。目前看起来应该是全网最简单的方法。搭建完成后,马上就可以利用python代码在我的世界自动创建很多有意思的...

Python开发中的虚拟环境管理_python3虚拟环境

Python开发中,虚拟环境管理帮助隔离项目依赖,避免不同项目之间的依赖冲突。虚拟环境的作用隔离依赖:不同项目可能需要不同版本的库,虚拟环境可以为每个项目创建独立的环境。避免全局污染:全局安装的库可...

Python内置zipfile模块:操作 ZIP 归档文件详解

一、知识导图二、知识讲解(一)zipfile模块概述zipfile模块是Python内置的用于操作ZIP归档文件的模块。它提供了创建、读取、写入、添加及列出ZIP文件的功能。(二)ZipFile类1....

Python内置模块pydoc :文档生成器和在线帮助系统详解

一、引言在Python开发中,良好的文档是提高代码可读性和可维护性的关键。pydoc是Python自带的一个强大的文档生成器和在线帮助系统,它可以根据Python模块自动生成文档,并支持多种输出格式...

Python sys模块使用教程_python system模块

1.知识导图2.sys模块概述2.1模块定义与作用sys模块是Python标准库中的一个内置模块,提供了与Python解释器及其环境交互的接口。它包含了许多与系统相关的变量和函数,可以用来控制P...

Python Logging 模块完全解读_python logging详解

私信我,回复:学习,获取免费学习资源包。Python中的logging模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误。Log信息有内置的层级——调试(deb...

软件测试|Python logging模块怎么使用,你会了吗?

Pythonlogging模块使用在开发和维护Python应用程序时,日志记录是一项非常重要的任务。Python提供了内置的logging模块,它可以帮助我们方便地记录应用程序的运行时信息、错误和调...

取消回复欢迎 发表评论: