热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python——字典及其特性,常用方法

Python——字典及其特性,常用方法,Go语言社区,Golang程序员人脉社

字典的定义

字典是一个无序的数据集合
通常输出的顺序和定义的顺序不一致

users = ['user1','user2'] passwd = ['123','456'] print(zip(users,passwd)) print(list(zip(users,passwd))) #列表 print(dict(zip(users,passwd))) #字典

在这里插入图片描述
定义一个空字典

s = {} print(type(s))

在这里插入图片描述
字典:key-value键-值对
value可以是任意的数据类型

s = { 'westos':[11,22,33], 'mysql':[44,55,66] } print(s) print(type(s))

在这里插入图片描述
工厂函数

d = dict() print(type(d))

在这里插入图片描述

d = dict(a=1,b=2) print(d,type(d))

在这里插入图片描述
字典的嵌套

students = { '02165071':{ 'name':'zyw', 'age':'18' }, '02165070':{ 'name':'lhr', 'age':'19' } } print(students['02165071']['name'])

在这里插入图片描述

所有的key的value值相同

#所有的key的value值相同 print({}.fromkeys({'1','2'},'000000'))

在这里插入图片描述

字典的特性

字典,不支持索引和切片,但可通过key值查询values值,key值唯一

字典不支持索引

在这里插入图片描述

字典不支持切片

在这里插入图片描述字典的重复和连接无意义
字典的key值是唯一的
成员操作符

d = { '1':'a', '2':'b' } print('1' in d)

在这里插入图片描述
for循环,默认遍历字典的key值

d = { '1':'a', '2':'b' } for key in d: print(key)

遍历字典

d = { '1':'a', '2':'b' } for key in d: print(key,d[key])

在这里插入图片描述

d = { '1':'a', '2':'b' } for k,v in d.items(): print(k,v)

在这里插入图片描述

字典的增加

如果key值存在,则更新对应的value值,如果key值不存在,则添加对应的key-value数值

service = { 'http':80, 'mysql':3306, 'smtp':25 } service['ftp'] = 21 print(service)

在这里插入图片描述

service = { 'http':80, 'mysql':3306, 'smtp':25 } service['ftp'] = 21 print(service) service['http'] = 443 print(service)

在这里插入图片描述
添加多个key-value值

service = { 'http':80, 'mysql':3306, 'smtp':25 } service_backup = { 'https':443, 'tomcat':8080, 'http':8080 } service.update(service_backup) #service变,service_backup不变 print(service)

在这里插入图片描述

service = { 'http':80, 'mysql':3306, 'smtp':25 } service_backup = { 'https':443, 'tomcat':8080, 'http':8080 } service.update(flask=9000,http=8000) print(service)

在这里插入图片描述
setdefault添加key值
如果key值存在,不做修改
如果key值不存在,添加对应的key-value

service = { 'http':80, 'mysql':3306, 'smtp':25 } service.setdefault('http',9000) print(service) service.setdefault('oracle',44575) print(service)

在这里插入图片描述

字典的删除

del删除

service = { 'http':80, 'mysql':3306, 'smtp':25 } del service['http'] print(service)

在这里插入图片描述

pop删除

pop删除指定的key的key-value
如果key存在,删除,并返回删除key对应value
如果不存在,报错

service = { 'http':80, 'mysql':3306, 'smtp':25 } item = service.pop('http') print(item) print(service)

在这里插入图片描述

service = { 'http':80, 'mysql':3306, 'smtp':25 } item = service.pop('https') print(item) print(service)

在这里插入图片描述

popitem

popitem删除最后一个key-value值对

service = { 'http':80, 'mysql':3306, 'smtp':25 } item = service.popitem() print(service)

在这里插入图片描述

clear

clear 清空字典内容

service = { 'http':80, 'mysql':3306, 'smtp':25 } service.clear() print(service)

在这里插入图片描述

字典的查看

查看字典的key值

print(services.keys())

service = { 'http':80, 'mysql':3306, 'smtp':25 } print(service.keys())

在这里插入图片描述

查看字典的value值

print(services.values())

service = { 'http':80, 'mysql':3306, 'smtp':25 } print(service.values())

在这里插入图片描述

查看字典的key-value值

print(services.items())

service = { 'http':80, 'mysql':3306, 'smtp':25 } print(service.items())

在这里插入图片描述

查看key的value值

key不存在,默认返回None
key不存在,有default,则返回default值

service = { 'http':80, 'mysql':3306, 'smtp':25 } print(service.get('https'))

在这里插入图片描述

service = { 'http':80, 'mysql':3306, 'smtp':25 } for k in service: print(k,service[k])

在这里插入图片描述

get方法

如果key值存在,返回
如果不存在,默认返回None,如果需要指定返回值,传值即可

service = { 'http':80, 'mysql':3306, 'smtp':25 } print(service.get('https','key is not exit'))

在这里插入图片描述

字典练习

练习01

数字重复统计:
1). 随机生成1000个整数;
2). 数字的范围[20, 100],
3). 升序输出所有不同的数字及其每个数字重复的次数;

import random all_num = [] for item in range(1000): all_num.append(random.randint(20,100)) print(all_num) sorted_num = sorted(all_num) num_dict = {} for num in sorted_num: if num in num_dict: num_dict[num] += 1 else: num_dict[num] = 1 print(num_dict)

在这里插入图片描述

练习02

输入一串字符串,统计每个单词出现的次数
例如:
‘westos hello python westos’
westos 2
hello 1
python 1

思路:
1.把该字符串分割处理,以空格为分隔符
2.定义一个空字典,用字典存储该单词和他出现的次数
3.依次遍历循环列表,如果列表元素不再字典的key中,将元素key的value值为1,如果列表的元素在字典的key中,直接更新该key对应的value值,在原有的基础上加1

str = input('请输入: ') str_list = str.split() print(str_list) dict = {} for item in str_list: if item not in dict: dict[item] = 1 else: dict[item] += 1 print(dict)

在这里插入图片描述


推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
author-avatar
宝丫2502933885
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有