网站首页 > 基础教程 正文
字典
- 定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的数据结构为键值对结构
{key:value}
key必须是唯一的,且是不可变数据类型(如数值、字符串、元组),Value可以是任意类型的数据
{key: value}
- 字典创建
- 使用大括号 { } 创建空字典:
- 使用内建函数 dict() 创建字典:
- 常规定义方式
3、字典的增删改查
(1)字典
1)增加字典元素
①update 则可以更新key的值,如果不存在则添加键值对
②setdefault()查找‘值’,当‘键’不存在时会直接添加进去
③通过 变量名[键] = 值 来对应修改,当获取的‘键’不存在时,会直接添加进去;(存在修改,不存在添加)
2)删除字典元素
①pop 可以删除指定key
pop函数在删的同时会返回删除的’值‘到 变量名.pop(键) 代码处
②popitem 可以删除一个键值对
popitem函数在删的同时会返回删除的’键值对‘到 变量名 popitem(键) 代码处
3)修改字典
①通过 变量名[键] = 值 来对应修改,当获取的‘键’不存在时,会直接添加进去;(存在修改,不存在添加)
②通过update()修改‘键值对’,当不存在时会直接添加进去。
- 查找.
①通过for循环遍历; (这个是取‘键’)
结果为:
②通过‘键’取‘值’; (这个是取‘值’)==》变量名[键]
③通过get()访问。 (这个也是取‘值’)
# 写法格式:字典或变量名.get(键, 键不存在时返回的值)
当键不存在时,一般默认返回None(不报错),这个默认值可以自己设置,就是第二个参数(可以自定义)
4、字典内置方法列表
序号 | 函数及描述 |
dict.clear() | 删除字典内所有元素 |
dict.copy() | 返回一个字典的浅复制 |
dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
dict.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
key in dict | 如果键在字典dict里返回true,否则返回false |
dict.items() | 以列表返回一个视图对象 |
dict.keys() | 返回一个视图对象 |
dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
dict.values() | 返回一个视图对象 |
pop(key[,default]) | 删除字典 key(键)所对应的值,返回被删除的值。 |
popitem() | 返回并删除字典中的最后一对键和值。 |
集合
- 定义
(1)集合(set)是一个无序的不重复元素序列。
(2)集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
(3)可以使用大括号 { } 创建集合,元素之间用逗号,分隔,或者也可以使用 set() 函数创建集合。
注:
集合只能存储不可变的数据类型:字符串、元组、数值类型
集合中的元素是唯一的,可以利用集合的这个特点来给其他数据进行去重
- 集合的运算
- 集合的交集(&):指的是两个集合中相同的元素一个空集合用:set() 表示
- 集合的并集(|):指的是两个集合不相同的元素合并在一起
- 集合的差集(-):指的是两个集合减去两个集合中相同的元素
- 集合的基本操作
集合是可变的散列类型数据,所以添加、修改和删除是作用于源数据
1)增加集合元素
①add():是一次添加一个整体
②update():只能是添加序列,并且在添加时会进行拆分一个一个添加
2)删除集合元素
①remove():通过指定的元素进行删除,如果要删除的元素不存在会报错
②pop():随机删除集合中的某一个元素
③discard( ):移除集合中的元素,且如果元素不存在,不会发生错误
3)查找.
集合是一种无序、可变的散列类型数据,既没有索引号,也没有键,元素的排列是按照哈希算法去排的,一般呈现在人眼中的效果是‘随机(无序)’的,所以集合的元素只能通过for循环进行遍历‘无序’取出:
- 集合的判断
- 集合内置方法完整列表
方法 | 描述 |
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |
len() | 计算集合元素个数 |
运算符优先级
运算符 | 描述 |
** | 幂 运算 |
+、- | 一元运算符(正负号) |
*、1、% | 算术运算符(乘、除、取余) |
+、- | (加减) |
<、>、<=、>= | 比较运算符 |
==、!= | |
"=、%=、/=、-=、+=、*=、**=" | 赋值运算符 |
is、 is not | 身份运算符 |
in、 not in | 成员运算符 |
not > and > or | 逻辑运算符 |
可变和不可变总结
- 可变对象: list、 dict、 set
- 不可变对象: 数值、 str、 元组
练习题
1. 以下属于可变类型的是()
A. a = 1
B. lst = [1,2,3]
C. dic1 = {‘age’:18,’name’:’lucy’}
D. t =(5, 6, 7)
2. 编程题:杰克和汤姆一起去买水果,
这是他们的购物清单:
jack = {'西瓜', '葡萄', '香蕉', '苹果'},tom = {'苹果', '西瓜', '哈密瓜', '橘子'},
请问:他们买的一样的水果有几种?他们一共买了哪几种水果?
要求:使用集合的方法计算出结果,并输出
3. 给出一个列表:b = [11, 22, 33, 44, 55, 77, 88, 99],
用for循环将所有大于66的值逐一保存至字典的第一个‘键值对’的值中,
将小于66的值逐一保存至第二个‘键值对’的值中,并将结果输出来。
猜你喜欢
- 2025-01-07 Python从入门到放弃-详解列表、元组和字典
- 2025-01-07 python 中字典如何进行复制
- 2025-01-07 python入门023:字典嵌套
- 2025-01-07 掌握Python字典的12个例子
- 2025-01-07 使用Python 获取多级字典(Json)格式所有Key、Value
- 2025-01-07 简单学Python——字典的操作1(增加、更改和删除字典元素)
- 2025-01-07 Python之容器拾遗:Python就是包裹在一堆语法糖中的字典
- 2025-01-07 深入了解python字典的有序特性
- 2025-01-07 如何在 Python 中以列表形式返回字典的键
- 2025-01-07 解锁Python字典合并:多种方法解析
- 01-11网络小白必看!计算机网络基础讲解——网络协议
- 01-11网络基础知识:ARP、ICMP、IP协议
- 01-11了解不同类型的网络通信协议
- 01-11常用网络协议整理笔记(二)---ARP/RARP协议
- 01-11一图看懂8种流行的网络协议栈
- 01-11Socks5与HTTP:网络协议比较与应用场景解析
- 01-11简单!三分钟教你速通通信协议
- 01-11网络路由器常用协议介绍
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)