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

python基础类型—字典

字典字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,

字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

 

可变数据类型:列表list,字典dict     又叫不可哈希

不可变数据类型: 元祖,bool值,数字int,字符型str            本身不可变,又叫可哈希

key  键,必须是不可变类型,可哈希

value 值,任意数据类型

创建空字典使用 { }

字典dict优点:

      1,用二分法查询,查询速度快

      2,储存大量的关系型数据

 

字典dick特点:

      字典dict是无序的。(3.5及之前的字典dict是无序的)

简写为dic

dic = {'name':'xiaoming','age':18,'num':[1,2,3,'alex'],'s1':{'xiao':'han','gh':[1,2,3,4]},'qq':123
}
print(dic)

结果 {'name': 'xiaoming', 'age': 18, 'num': [1, 2, 3, 'alex'], 's1': {'xiao': 'han', 'gh': [1, 2, 3, 4]}, 'qq': 123}

,两种方法(注意与列表list区别)

直接加,如果没有对应键值,则直接加在后面。如果有对应键值,则进行覆盖。
dic1 ={'name':'xiaojun'}
dic1['height'] = 180
print(dic1)

 

dic.setdefault('') 形式,有对应键值,则不做任何修改。没有对应键值,后面默认加None
dic = {'name':'xiaoming','age':18,'num':[1,2,3,'alex'],'s1':{'xiao':'han','gh':[1,2,3,4]},'qq':123
}
dic.setdefault('weighe')print(dic)


dic.setdefault('weighe',180) 另一种形式
dic = {'name':'xiaoming','age':18,'num':[1,2,3,'alex'],'s1':{'xiao':'han','gh':[1,2,3,4]},'qq':123
}
dic.setdefault('weighe',180)print(dic)
结果 {'name': 'xiaoming', 'age': 18, 'num': [1, 2, 3, 'alex'], 's1': {'xiao': 'han', 'gh': [1, 2, 3, 4]}, 'qq': 123, 'weighe': 180}

 

,

dic.pop(‘’)直接删
dic = {'name':'xiaoming','age':18}
dic.pop('age')
print(dic)

 

有返回值,返回被删除的键值
dic = {'name':'xiaoming','age':18}
s = dic.pop('age')
print(s)
结果18

可设置返回值,如果没有对应的被删键值,返回自己设定的值,就是下面的‘不错’
dic = {'name':'xiaoming','age':18}
s = dic.pop('aa','不错') #如果aa变成name,则返回小明
print(s)
结果 不错

dic.popltem()形式,随机删除一个,3.6版本默认删除最后一个dic = {'aa':'xiaoming','age':18}
dic.popitem()
print(dic)结果 {'aa': 'xiaoming'}

dic = {'aa':'xiaoming','age':18} #这种,有返回值
print(dic.popitem())

结果 ('age', 18)

 

清空列表
dic = {'aa':'xiaoming','age':18}
dic.clear()print(dic)结果 {}

 

直接改
dic = {'name':'xiaoming','age':18}
dic['age'] = 16
print(dic)

 

dic1.update(dic)覆盖增加,把dic覆盖增加到dic1中,
dic = {'name':'xiaoming','age':18}
dic1 ={'name':'xiaojun','height':180}
dic1.update(dic)
print(dic1)
dic和dic1中对应的键,则用dic的键值覆盖dic1的,dic没有与dic1中对应的减,则直接加入dic1中,dic1中多的键值,则直接保留
结果{'name': 'xiaoming', 'height': 180, 'age': 18}

 

dic['直接查']直接查,没有会报错
dic = {'name':'xiaoming','age':18}
print(dic["name"])

dic.get('high','设置返回的值‘)
dic = {'name':'xiaoming','age':18}
print(dic.get("high","默认返回值") ) # 没有可以返回设定的返回值
#print(dic.get('high')) 默认返回None

 

只打印键
dic = {'name':'xiaoming','age':18} = dic = {'name':'xiaoming','age';18}
for i in dic: = for i in dic.keys():print(i) = print(i)

结果 name 结果 name
   age age

 

只打印值
dic = {'name':'xiaoming','age':18}
for i in dic.values():print(i)结果 xiaoming18

a = 1
b = 2
a,b = b,a
print(a,b)

 

items 同时打印keys 和 valuces
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for i in dic.items():print(i)



推荐阅读
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
author-avatar
平凡特产小店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有