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

python字典dic(python字典调用函数)

本文目录一览:1、python如何往空字典添加键值对??

本文目录一览:


  • 1、python如何往空字典添加键值对??


  • 2、Python字典的底层实现


  • 3、python怎样输出字典键对应的值


  • 4、Python 字典(dic)操作


  • 5、python字典操作问题

python如何往空字典添加键值对??

题主你好,

看例子吧:

我先定义一个空字典dic:

dic = {}

向字典中添加键值对是通过: 

字典名['键名'] = '值' 

这种形式, 下面我向字典中添加一个键为'name', 值为'hello kitty'的这么一个键值对:

dic['name'] = 'hello kitty'

此时字典dic的值就内{}, 变为了{'name': 'hello kitty'}

---

测试截图:

希望可以帮到题主, 欢迎追问

Python字典的底层实现

字典是一种可变、无序容器数据结构。元素以键值对存在,键值唯一。它的特点搜索速度很快:数据量增加10000倍,搜索时间增加不到2倍;当数据量很大的时候,字典的搜索速度要比列表快成百上千倍。

在Python中,字典是通过散列表(哈希表)实现的。字典也叫哈希数组或关联数组,所以其本质是数组(如下图),每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引用。所有 bucket 结构和大小一致,我们可以通过偏移量来读取指定 bucket。

定义一个字典 dic = {},假设其哈希数组长度为8。

Python会根据哈希数组的拥挤程度对其扩容。“扩容”指的是:创造更大的数组,这时候会对已经存在的键值对重新进行哈希取余运算保存到其它位置;一般接近 2/3 时,数组就会扩容。扩容后,偏移量的数字个数增加,如数组长度扩容到16时,可以用最右边4位数字作为偏移量。

计算键对象 name 的哈希值,然后比较哈希数组对应索引内的bucket是否为空,为空返回 None ,否则计算这个bucket的键对象的哈希值,然后与 name 哈希值比较,相等则返回 值对象 ,否则继续左移计算哈希值。

注意:

1.键必须为可哈希的,如数字、元组、字符串;自定义对象需要满足支持hash、支持通过 __eq__() 方法检测相等性、若 a == b 为真,则 hash(a) == hash(b) 也为真。

2.字典的内存开销很大,以空间换时间。

3.键查询速度很快,列表查询是按顺序一个个遍历,字典则是一步到位。

4.往字典里面添加新键可能导致扩容,导致哈希数组中键的次序变化。因此,不要在遍历字典的同时进行字典的修改。

python怎样输出字典键对应的值

dic={"233":"233",233:"666"}

print dic["233"]

print dic[233]

也就是说,对于一个字典dic,dic[键值]就是该键值所对应的值

Python 字典(dic)操作

具体函数有 set(),pop(),update(),items(),keys(),values(),get(),setdefault()

python 字典操作

假设字典为 dics = {0:'a', 1:'b', 'c':3}

二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:

print dics.get('a')

print dics.get('Paul')

None

dict.get(key,default=None) 两个选项 一个 key 一个 default= None ----default可以是任何strings(字符)

2.从字典中取值,若找到则删除;当键不存在时,显示异常key error

[方法]  dics.pop('key')

3.给字典添加一个条目。如果不存在,就指定特定的值;若存在,就算了。

[方法] dic.setdefault(key, value)

4. update

a = {'a':1,'b':2}

a.update({'c':3})

a

{'a': 1,'c': 3,'b': 2}

a.update({'c':4})

a

{'a': 1,'c': 4,'b': 2}

dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。

有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。

python字典操作问题

应为在python中dict是可变对象。用dic1赋值给dic3后,并没有创建一个新的对象,dic3和dic1指向同一个对象。通过dic3改变其内容,就如同通过dic1改变对象内容一样。

具体的内容你可以看看深拷贝和浅拷贝

import copy

def com_weight(dic1,dic2):

    dic3 = copy.deepcopy(dic1)  #深拷贝,,,,

    for i in dic1.keys():

        for j in dic1[i].keys():

            dic3[i][j]=dic1[i][j]-dic2[i][j]

        

    print dic3

if __name__=='__main__':

   

    dic1 = {1: {1: 142264, 2: 142315}, 2: {3: 142111}, 3: {3: 142723}}

    dic2 = {1: {1: 142263, 2: 142312}, 2: {3: 142110}, 3: {3: 142722}}       

        

    print '__________________'

    print dic1

    print dic2

    print '*******************'

    com_weight(dic1, dic2)

    print '~~~~~~~~~~~~~~~~~~~~~~~~'

    print dic1

    print dic2


推荐阅读
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
author-avatar
MCphp
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有