iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python--字典(dict)和集合(set)详解
  • 155
分享到

python--字典(dict)和集合(set)详解

2024-04-02 19:04:59 155人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、集合1.集合定义2.创建集合3.去重4.集合增删5.关系运算6.排序7.frozenset8.练习9.特性二、字典1.字典定义2.字典打印3.字典元素删除4.setdefau

一、集合

在这里插入图片描述

1.集合定义

  • 集合(set)是一个无序的不重复元素序列。

2.创建集合

  • 使用大括号 { } 或者 set() 函数创建集合;
  • 创建一个空集合必须用 set() 而不是 { }
  • { } 是用来创建一个空字典。

s = {1,2,3,4}
print(s,type(s))

在这里插入图片描述

3.去重


s = {1,2,3,4,3,2,1}
print(s,)

在这里插入图片描述

4.集合增删


s = {1,2,3}
s.add(4) #单个元素
print(s)
s.update({4,5,6}) #多个元素
print(s)
s = {1,2,3,4,5,6}
s.remove(4) #移除某个
print(s)
s.pop() #随机移除
print(s)

在这里插入图片描述

5.关系运算


s1 = {1,2,3}
s2 = {1,2,4}
print(s1 - s2)
print(s1 & s2)
print(s1 ^ s2)
print(s1 | s2)

在这里插入图片描述

6.排序


s = {1,6,3,8,5}
print(sorted(s))

7.frozenset

  • frozenset 是 set 的不可变版本,因此 set 集合中所有能改变集合本身的方法(如 add、remove、discard、xxx_update 等),frozenset 都不支持;set 集合中不改变集合本身的方法,fronzenset 都支持。
  • frozenset 的这些方法和 set 集合同名方法的功能完全相同。frozenset 的作用主要有两点:

当集合元素不需要改变时,使用 frozenset 代替 set 更安全

当某些 api 需要不可变对象时,必须用 frozenset 代替set。比如 dict 的 key 必须是不可变对象,因此只能用 frozenset;再比如 set 本身的集合元素必须是不可变的,因此 set 不能包含 set,set 只能包含 frozenset。


s = frozenset({1,2,3})
print(s, type(s))

在这里插入图片描述

8.练习

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从大到小排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。


import random
s = set()
n = int(input("the count:"))
for i in range(n):
    s.add(random.randint(1,1000))
print(sorted(s,reverse=True))

9.特性

  • 不支持连接+,重复*,检索 index,切片slice
  • 支持in,not in

二、字典

在这里插入图片描述

1.字典定义

  • 字典是另一种可变容器模型,且可存储任意类型对象。
  • 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

判断字符是否在字典内,注意此处的字符为键值key的内容,而不是value


d = {'name':'jia' , 'age':'18' , 'city':'xian'}
print(d,type(d))
print('name'in d)
print('jia'in d)

在这里插入图片描述

2.字典打印

键值、value、字典打印


d = {'name':'jia' , 'age':'18' , 'city':'xian'}
print(d.keys())
print(d.values())
print(d.items())
print(d['name'])
print(d['age'])
print(d['city'])

在这里插入图片描述

打印value


print(d['name'])
print(d['age'])
print(d['city'])

在这里插入图片描述

按照字典格式,自定义键值和value,获取value


print(d['province']) #不存在的元素会异常报错
print(d.get('province', 'shanghai'))

在这里插入图片描述

添加及修改字典内value


d = {'name':'jia', 'age':'18'}
d['name'] = 'zhao'
print(d)
d['city'] = 'xian'
print(d)

在这里插入图片描述

循环打印字典内容


for item in d:
    print(item)
for item in d.items():
    print(item)

在这里插入图片描述

双变量循环打印字典


for k,v in d.items():
    print(f'key={k},value={v}')

在这里插入图片描述

3.字典元素删除

方法一:pop()方法弹出指定元素


d = {'name':'jia' , 'age':'18' , 'city':'xian'}
d.pop('name')
print(d)

方法二:del()方法删除指定元素:


d = {'name':'jia' , 'age':'18' , 'city':'xian'}
# d.pop('name')
del d['age']
print(d)

在这里插入图片描述

4.setdefault

设置键值默认为指定value,当默认value被指定后,不会再改变


d = {'name':'jia' , 'age':'18' , 'city':'xian'}
d.setdefault('city','luoyang')
print(d)
d.setdefault('city','beijing')
print(d)

在这里插入图片描述

5.defaultdict

  • collections.defaultdict类,本身提供了默认值的功能, 默认值可以是整形,列表,集合等.
  • defaultdict 是 dict 的子类。但它与 dict 最大的区别在于,如果程序试图根据不存在的 key 访问 value,会引发 KeyError 异常;而 defaultdict 提供default_factory 属性,该为不存在的 key 来自动生成生成默认的 value。

需求:

我们想要一个能将键(key)映射到多个值的字(即所谓的一键多值字典)

解决方案:

1). 字典是一种关联容器,每个键都映射到一个单独的值上。如果想让键映射到多个值,需要将这些多个值保存到容器(列表或者集合)中。

2). 利用collections模块中的defaultdict类自动初始化第一个值,这样只需关注添加元素.


from collections import defaultdict
d = defaultdict(int)
d['num'] += 1
print(d)
d = defaultdict(list)
d['hosts'].append('host1')
print(d)
d = defaultdict(set)
d['media'].add('demo')
print(d)

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: python--字典(dict)和集合(set)详解

本文链接: https://www.lsjlt.com/news/135105.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python--字典(dict)和集合(set)详解
    目录一、集合1.集合定义2.创建集合3.去重4.集合增删5.关系运算6.排序7.frozenset8.练习9.特性二、字典1.字典定义2.字典打印3.字典元素删除4.setdefau...
    99+
    2022-11-12
  • python-字典dict和集合set
    目录1.字典 字典的相关操作 获取字典的长度2.集合 1.字典 字典是python中的一种数据结构。 它的内容由**键-值(key-value)**的方式存在。 dict拥有良好的...
    99+
    2022-11-12
  • 如何分析python中字典dict和集合set
    今天就跟大家聊聊有关如何分析python中字典dict和集合set,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.字典字典是python中的一种数据结构。它的内容由**键-值(ke...
    99+
    2023-06-22
  • Python基础:字典(dict)与集合
    查找场景下与列表的性能对比    字典与集合之所以高效的原因是:内部结构都是一张哈希表。   平均情况下插入、查找和删除的时间复杂度为 O(1).   假设有数量100,000的产品列表: import time id = [x for...
    99+
    2023-01-31
    字典 基础 Python
  • Python 中字典dict详解
    一、字典(dict)概念 字典是另一种可变容器模型,且可存储任意类型对象如字符串、数字、元组等其他容器模型,因为字典是无序的所以不支持索引和切片。 二、字典(dict)的定义 一般格式: 字典的每个键...
    99+
    2023-09-01
    python 开发语言
  • Python字典和集合讲解
    目录一、Python字典1.什么是字典2.字典的创建方式2.1 通过其他字典创建 2.2 通过关键字参数创建2.3 通过键值对的序列创建2.4 通过dict和zip结合创建3.字典的...
    99+
    2022-11-12
  • python字典和集合
      1. 字典字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必...
    99+
    2023-01-31
    字典 python
  • Python数据类型详解(四)字典:dict
    一.基本数据类型   整数:int   字符串:str(注:t等于一个tab键)   布尔值: bool   列表:list   列表用[]   元祖:tuple   元祖用()   字典:dict 注...
    99+
    2022-06-04
    字典 详解 数据类型
  • Python 集合之set详解
    目录引言集合的定义集合常用操作集合添加元素集合移除元素集合统计、清空元素集合元素获取(遍历)集合之间的运算集合差运算 -集合并运算 |集合交运算 &集合异或运算 ^应用场景普...
    99+
    2022-11-12
  • JavaScript字典与集合详解
    目录字典什么是字典JavaScript中的字典字典的应用集合什么是集合JS中的集合集合中的操作交集、并集、差集的封装字典 什么是字典 说到字典,第一时间想到的应该就是新华字典,实际上...
    99+
    2022-11-13
  • Python学习之字典和集合的使用详解
    目录字典简介字典的基本方法字典元素添加获取字典键对应的值字典元素的修改字典元素的删除字典的遍历集合学习集合添加元素集合删除元素统计集合个数,判断元素是否存在,清空集合集合运算字典简介...
    99+
    2022-11-11
  • Python 集合set详解(超详细)
    文章目录 Python内置函数/方法详解—集合set1、构造集合2、基本计算2.1 -2.2 |2.3 &2.4 ^ 3、访问项目4、内置函数4.1 打印输出 print()4.2 计算...
    99+
    2023-09-02
    python 开发语言 pycharm 后端 算法
  • 详解Python合并字典
    目录实例 1 : 使用 update() 方法,第二个参数合并第一个参数实例 2 : 使用 **,函数将参数以字典的形式导入总结给定一个字典,然后计算它们所有数字值的和。 实例 1 ...
    99+
    2022-11-12
  • Python中的集合和字典
    目录1 集合2 字典(key:value)1 集合 集合可以使用大括号({})或者set()函数进行创建,但是创建一个空集合必须使用set()函数,而不能用{},大括号是用来创建一个...
    99+
    2022-11-13
  • python的字典和集合你了解吗
    目录字典修改字典删除字典元素字典键的特性字典内置函数&方法集合集合的基本操作集合内置方法完整列表总结字典 d = {key1 : value1, key2 : value2,...
    99+
    2022-11-13
  • python基础之set集合详解
    一、set 集合 集合(set)是一个无序的不重复元素序列。 可以使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { ...
    99+
    2022-11-12
  • Python基础之dict和set的使用详解
    目录dictset再议不可变对象小结dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言种也称为map,使用键-值(key-value)存储...
    99+
    2022-11-11
  • Python集合之set和frozenset的使用详解
    目录简介构造基本使用交集、并集、差集、对称差集无交集、子集、超集运算符可用于 set 的操作简介 集合对象 set 是由具有唯一性的可哈希对象组成的无序多项集,如 list 不能哈希...
    99+
    2022-11-10
  • Python的集合类型之set和frozenset详解
    目录集合类型—set,frozensetset和frozenset的实例提供以下操作:len(s)xinsxnotinsisdisjoint(other)issubset...
    99+
    2022-11-13
  • 详解python的集合set的函数
    目录常用查询增加删除交、并、补、对称差交集并集补集对称差其他总结s={ x1,x2,x3.....}; 集合有自动去重的功能,而且可以进行交并补运算,而且集合是无序的,每次打印的结果...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作