python学习篇05 - 字典 集合

1、字典

定义:字典是以 key :value 的形式来保存数据,用{} 来表示,存储的是 key : value

查找效率比较高(注:字典存储数据时,用的是hash值来存储,算法不能变(python)

数据必须是不可变的(可哈希),字典的key必须是可哈希的(不可变)

列表是可变的,不可哈希

元组是不可变的,可哈希的

2、字典的增删改查

增加

dic[新key] = 值

dic.setdefault()  有添加的功能,如果key存在,不添加

流程:判断新key是否在字典中存在,如果已经存在了,不做变更;如果不存在,执行添加操作

删除

dic.pop(key)

dic.popitem()  随机删除一项,在python早期的版本中,字典是无序的。

del dic[key]

dic.clear()  清空

修改

dic[老key] = 值

update(dic1)     # 把dic1中的内容更新到dic中,如果key重名,则修改替换,如果不存在key,则新增。

查询

一般用key来查找具体的数据。

1、直接使用key就可以拿到value。当key不存在时,报错

2、dic.get(key)  当key 不存在返回 None

当key存在时,返回第二个参数,默认第二个参数为 None

3、 dic.setdefailt()  第一个功能是添加(当key不存在的时候)  第二个功能是查询(根据你给的key)

整个执行流程:判断给的key是否存在,如果存在,就不执行新增流程,直接查询出这个key对应的value

如果key不存在,先执行新增操作,再使用key把对应的value查询出来。

遍历,字典是一个可迭代对象

a,b = 1,2 # 把后面的两个值分别赋值给前面两个变量,解构,解包

元组和列表是可以解包的

for k,v in dic.items():

print(item)

k,v = item   #解构

k = item[0]

v = item[1]

print(k,v)

遍历字典的两套方案

   1、使用for循环直接遍历字典

dic = {"赵四":"刘晓光", "刘能":"王晓利", "王木生":"范伟"}
for key in dic:
    print(key)
    print(value)

  

   2、可以使用字典的items() +解构可以直接获取到key 和 value

for k,v in dic.items():
    print(k)
    print(v)

  

3、字典的相关操作

dic.keys()  获取到所有的键值

dic.values()  获取到所有的值

dic.items()  获取到所有的键值对

4、字典的嵌套

字典的嵌套,字典套字典

5、 set 集合

set集合是python的一个基本数据类型。set中的元素是不重复的无序的,里面的元素必须是可hash的(int,str,tuple,bool)

set 就是dic类型的数据但不保存value,只保存key set也用{}表示

注: set集合中的元素必须是可hash的,但set本身是不可hash的,set是可变的

使用set的不可重复的特性,我们可以使用set来去重  

# 给 list 去重
lst =[45,6,‘‘geg,45,6]
lst = list(set(lst))   #把list转化成set,再转化回list
print(lst)

  

 6、set集合的增删改查

1、增加

s.add(‘元素‘)  # 重复的内容不会被添加到set集合中

s.update(‘元素‘)   #迭代更新

2、删除

item = s.pop()   # 随机弹出一个

s.remove(‘元素‘)   # 若这个元素不存在,删除在会报错

s.clear()  #清空set集合,清空完之后,会打印为 set(),要和dic区分

3、修改

set集合中的数据没有索引,也没办法去定位一个元素,所以没有办法直接修改

我们可以采用先删除后添加的方式来完成修改操作

s = {"刘嘉玲", ‘关之琳‘, "王祖贤","张曼?", "李若彤"}
# 把刘嘉玲改成赵本?
s.remove("刘嘉玲")
s.add("赵本?")
print(s)

  

  4、查询

set 是一个可迭代的对象,所以可以进行for循环

7、set集合的一些其他操作

交集:s1&s2   s1.intersection(s2)

并集:s1|s2     s1.union(s2)

差集 :s1 -s2    s1.difference(s2)     得到s1 中单独存在的元素

反交集(s1^s2)   s1.symmetric_difference(s2)  两个集合中单独存在的元素

子集:  s1 < s2    s1.issubset(s2)   s1 是 s2 的子集吗?返回  True  or  False

超集: s1 >s2   s1 是s2 的超集吗? False  or  True

set集合本身是可以发生改变的,是不可hash的。我们可以用frozenset来保存数据。frozenset是不可变的,也就是一个可哈希的数据类型

s = frozenset(["赵本?", "刘能", "???", "?跪"])
dic = {s:‘123‘} # 可以正常使?了
print(dic)

#{frozenset({‘刘能‘, ‘???‘, ‘赵本?‘, ‘?跪‘}): ‘123‘}

  

原文地址:https://www.cnblogs.com/1915823-huxt/p/10054461.html

时间: 2024-07-31 15:19:08

python学习篇05 - 字典 集合的相关文章

python学习列表字符串字典集合文件操作字符串编码与转换

一.列表 1 names = "ZhangYang GuYun XiangPeng XuLiangchen" 2 names = ["ZhangYang", "GuYun", "XiangPeng", "ChengRongHua","XuLiangchen"] 3 names.append("LeiHaiDong") #在列表最后追加一个元素 4 names.inse

python之路---05 字典 集合

二十.字典 可变数据类型 {key:value}形式   查找效率高   key值必须是不可变的数据类型 1.增删改查 1).增    dic["新key"] = "新value"        追加新元素 dic.setdefault(新key,新value)    如果key存在  不添加 如果key不存在, 添加{新key:新value} 2).删    .pop("key")      关键字删除 .popitem() 删除最后一项(早期

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

python中列表 元组 字典 集合的区别

列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复项的.如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的.pyt

05,.字典,集合

1.什么是字典 字典是以key:value的形式来保存数据,用{}表示.   存储的是key:value 坑: 字典存储数据的时候是用的hash值来存储. 算法不能变(python的) # 数据必须是不可变的(可哈希). 字典的key必须是可哈希的(不可变). dic = {"jay":"周杰伦", "jj": "林俊杰", "jolin":"蔡依林"} print(dic['jay']

Python的列表&amp;元组&amp;字典&amp;集合

目录 列表(list) 列表的定义 列表的查询 增加数据 修改数据 删除数据 其它常用操作 元组(tuple) 元组的拆包 具名元组 字典(dict) 创建字典 字典添加数据 查询字典数据 修改字典数据 删除字典数据 其它操作 字典的遍历 集合(set) 集合的创建 访问集合 更新集合 删除集合 集合的操作符 集合应用 列表(list) ? 列表(list)是python以及其他语言中最常用到的数据结构之一.Python使用中括号 [ ] 来解析列表.列表是可变的(mutable)--可以改变列

python 学习笔记day05-python字典和集合、条件和循环、文件和输入输出

字典和集合 字典基础操作 创建字典 通过{}操作符创建字典 通过dict()工厂函数创建字典 通过fromkeys()创建具有相同值的默认字典 >>> aDict = {'Name':'Bob','age':23}                >>> import tab                >>> bDict = dict((['name','bob'],['age',23]))                >>> p

Python学习笔记四--字典与集合

字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={} dict2={'name':John,'age':24} 使用dict()函数创建字典. dict()函数接受序列,或关键字参数作为参数创建字典.若不提供参数则创建空字典. dict1=dict([['x',1],['y',2]])#接受list作为参数创建字典 dict2=dict(x=1.y

python学习笔记 - 函数,集合,包,模块

一.函数 a=1, b=2, 交换值 定义中间量c,C=None, a,b=b,a a,b,c=1,2,3 sys.argv 实现指定的某些功能,使用的时候可以直接调用,简化代码,提高代码复用性 def fun():#定义一个函数,后面是函数名                print("Hello World")#函数体 例如: 1.def sayHello(): print("Hello World") sayHello()  --调用 2.def sayNam