python字典学习

这篇具有很好参考价值的文章主要介绍了python字典学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

读取和拷贝

if __name__ == '__main__':
    print()
    dictInfo = {1: "This is one", 2: "", 3: '', 5: "This is five"}
    # 字典的读取
    assert (len(dictInfo[1]) > 0)
    assert (len(dictInfo[2]) <= 0)
    assert (len(dictInfo[3]) <= 0)
    if 4 in dictInfo:
        assert (len(dictInfo[4]) <= 0)
    else:
        print("4 is not in dictInfo")

    # 字典的引用拷贝
    # (1) 直接赋值,对象的引用(别名)
    dic1 = {"Name": "HaiCoder", "Age": 100, "Score": 99.5}
    dic2 = dic1
    dic2["Name"] = "Demo"
    print("dic1", json.dumps(dic1))
    print("dic2", json.dumps(dic2))
    # print(json.dumps(dic1, sort_keys=True, indent=4, separators=(',', ':')))

    # (2) copy函数 拷贝父对象,不会拷贝对象的内部的子对象,数组也是个引用
    dic1 = {"Name": "HaiCoder", "Age": 100, "Score": 99.5, "phone": [10086, 10010]}
    dic2 = dic1.copy()
    dic2["Name"] = "Demo"
    print("dic1", json.dumps(dic1))
    print("dic2", json.dumps(dic2))
    dic1["phone"].append(10000)
    dic2["phone"].append(20000)
    print("dic1", json.dumps(dic1))
    print("dic2", json.dumps(dic2))

    # (3) copy.deepcopy, 完全拷贝了父对象及其子对象
    dic1 = {"Name": "HaiCoder", "Age": 100, "Score": 99.5, "phone": [10086, 10010]}
    dic2 = copy.deepcopy(dic1)
    dic2["Name"] = "Demo"
    print("dic1", json.dumps(dic1))
    print("dic2", json.dumps(dic2))
    dic1["phone"].append(10000)
    dic2["phone"].append(20000)
    print("dic1", json.dumps(dic1))
    print("dic2", json.dumps(dic2))
    
    #(4) copy.copy 浅拷贝
    a = [1, 2, 3, 4, ['a', 'b']]  # 原始对象
    b = a  # 赋值,传对象的引用
    c = copy.copy(a)  # 对象拷贝,浅拷贝
    d = copy.deepcopy(a)  # 对象拷贝,深拷贝
    a.append(5)  # 修改对象a
    a[4].append('c')  # 修改对象a中的['a', 'b']数组对象
    print('a = ', a) # [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    print('b = ', b) # [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    print('c = ', c) # [1, 2, 3, 4, ['a', 'b', '4'], 5]
    print('d = ', d) # [1, 2, 3, 4, ['a', 'b']]

python字典学习文章来源地址https://www.toymoban.com/news/detail-507029.html

创建和类型

if __name__ == '__main__':
    print()
    # {} 创建字典详解
    dic = {"Name": "HaiCoder", "Age": 100, "Score": 99.5}
    print(dic)
    print(type(dic))  # 使用 type() 函数,获取字典类型

    # 使用 fromkeys()
    # dictName = dict.fromkeys(list,value=None), list 参数表示字典中所有键的列表,value 参数默认为 None,表示所有键对应的值
    keys = ("Name", "Age", "Score")
    dic = dict.fromkeys(keys)
    print(dic)
    dic["Name"] = 1
    dic["Age"] = "2"
    dic["Score"] = [1, "2"]
    dic["Phone"] = {10086, 10010}
    print(dic)
    print(type(dic["Score"]), type(dic["Phone"]))  # Score是list,Phone是set

    # 使用 dict() 创建字典详解
    # dic = dict(one=1, two=2, three=3) # 用这种方式创建字典的 key 不需要加双引号
    dic = dict(Monday=1, Tuesday=2, Wednesday=3, Thursday=4, Friday=5)
    print(dic)

访问和遍历

if __name__ == '__main__':
    print()
    dic = {"Name": "HaiCoder", "Age": 100, "Score": 99.5}
    # (1)使用key作为下标访问,如果键不存在,程序会抛出异常
    print(dic["Name"])
    # (2)使用 get() 方法访问,如果键不存在,程序会不会抛出异常,而是返回一个空值,同时该方法可以设置键不存在时,使用的默认值。
    print(dic.get("Name"), dic.get("name", "nil"), dic.get("name"))
    if dic.get("name") is None:
        print("name not in dic")
    # (3)使用 items() 访问,返回是一个 key 对应一个 value 的元祖的列表的形式
    print(dic.items())

    # (4)使用 keys() 访问,返回的是字典的所有的key list
    print(dic.keys())
    # (5)使用 values() 访问,返回的是字典的所有的val list
    print(dic.values())

    # 遍历
    print("------(1)遍历key------")
    for key in dic:
        print(key)

    print("------(2)遍历key------")
    for key in dic.keys():  # for key in a和 for key in a.keys() 完全等价
        print(key)

    print("------(3)遍历val------")
    for value in dic.values():
        print(value)

    print("------(4)遍历k-v------")
    for kv in dic.items():
        print(kv, kv[0], kv[1])

    # 为啥这里的key和value必须是string
    dic = {"Name": "HaiCoder", "Age": "100", "Score": "99.5"}
    print("------遍历k-v------")
    for (key, value) in dic.items():
        print(key + ':' + value)
    for key, value in dic.items():
        print(key + ':' + value)

删除和弹出

if __name__ == '__main__':
    print()
    # 删除单个元素、删除整个元素
    dic = {"Name": "HaiCoder", "Age": 100, "Score": 99.5}
    # del dic["Phone"] 报错
    del dic["Name"]
    print("dic", dic)
    del dic
    # print("dic", dic) 报错

    # 弹出一个元素
    # 使用 pop 从字典中弹出不存在的元素
    dic = {"Name": "HaiCoder", "Age": 100, "Score": 99.5}
    # print("dic Before pop name", dic)
    # item = dic.pop("name") 报错
    # print("name =", item, "dic After pop name =", dic)
    print("dic Before pop Name", dic)
    item = dic.pop("Name")
    print("Name =", item, "dic After pop Name =", dic)

    dic = {"Name": "HaiCoder"}
    print("dic Before pop Name", dic)
    item = dic.pop("Name")
    print("Name =", item, "dic After pop Name =", dic)  # {}
    
    # 使用 popitem 从字典中随机返回一个元素
    dic = {"Name": "HaiCoder", "Age": 100, "Score": 99.5}
    print("dic before popitem =", dic)
    item = dic.popitem()
    print("Pop Item =", item, "dic after popitem =", dic)
    # 从空字典中弹出元素,程序报错
    # dic = {}
    # item = dic.popitem() 报错
    # print("Pop Item =", item, "dic after popitem =", dic)

到了这里,关于python字典学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记_基础篇(六)_Set集合,函数,深入拷贝,浅入拷贝,文件处理

    a、set集合,是一个无序且不重复的元素集合 set b、数据类型模块举例 a、数字和字符串 对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。 b、其他基本数据类型 对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地

    2024年02月12日
    浏览(38)
  • 如何解决字典打开和字典的读取,重复问题的避免【Java语言】

    在Java语言中,常用的解决字典打开和读取的方式是使用Map,例如HashMap或TreeMap。这些数据结构可以存储键值对,其中键是唯一的。因此,通过使用Map,可以 避免重复的问题 。 编写代码时需要着重考虑以下几个方面: 定义Map :需要定义一个Map对象来存储键值对,以便后续的

    2024年02月11日
    浏览(42)
  • 机器学习强基计划9-2:图解字典学习KSVD算法(附Python实战)

    机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖,由本人亲自从底层编

    2024年02月11日
    浏览(48)
  • 【Python零基础学习入门篇④】——第四节:Python的列表、元组、集合和字典

    ⬇️⬇️⬇️⬇️⬇️⬇️ ⭐⭐⭐Hello,大家好呀我是陈童学哦,一个普通大一在校生,请大家多多关照呀嘿嘿😁😊😘 🌟🌟🌟 技术这条路固然很艰辛,但既已选择,该当坚毅地走下去,加油! 🌤️PUA: ” 你所看到的惊艳都曾平庸历练 **“**🚀🚀🚀 🍉🍉🍉 最后让我

    2024年02月04日
    浏览(69)
  • 更深层次理解Python的 列表、元组、字典、集合(工作面试学习必需掌握的知识点)

    目录 序列介绍 列表  列表的创建 range()创建整数列表   推导式生成列表

    2024年02月22日
    浏览(45)
  • python机器学习(七)决策树(下) 特征工程、字典特征、文本特征、决策树算法API、可视化、解决回归问题

    特征提取就是将任意数据转换为可用于机器学习的数字特征。计算机无法直接识别字符串,将字符串转换为机器可以读懂的数字特征,才能让计算机理解该字符串(特征)表达的意义。 主要分为:字典特征提取(特征离散化)、文本特征提取(文章中特征词汇出现的频次)。 字典特

    2024年02月14日
    浏览(54)
  • Python print()函数使用详解,Python打印输出

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 print() 可以 「打印输出」 ,常用来将内容 「打印」 到控制台。 语法 参数

    2024年02月11日
    浏览(56)
  • chatgpt赋能python:Python怎么print换行?

    如果你是一个Python开发者,你可能遇到过需要在Python中打印输出换行的情况。本文将分享几种方式,让你学会如何在Python中print换行。 您可以在print语句中使用\\\"n\\\"来表示换行。这个字符具有特殊的含义,会告诉Python在这里插入一个换行符。这是最基本的打印换行的方法。下面

    2024年02月16日
    浏览(48)
  • python之print(f“ “)用法

    Python输出函数print加上 f 的作用:即print(f\\\" “) 主要作用就是格式化字符串,加f后可以在字符串里面使用用花括号括起来的变量和表达式,使花括号里的变量和表达式也能用字符串表示。 比如: 输出结果为: 这里{x_train}里的x_train本来类型为array,但是前面加了print(f” \\\")就能转

    2024年02月13日
    浏览(57)
  • 深度学习(一)——使用Python读取图片

    作用:支持打开package,看到里面的工具函数 示例: (1) 输出torch库包含的函数 (2) 输出torch.AVG函数中的参数 作用:说明书,查看库中函数某个参数的说明或使用方法 示例: (1) 输出torch库中AVG函数的AVG参数使用方法 PIL的安装:win+r → cmd → 选择环境 → pip install Pillow 使用方法

    2024年02月15日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包