python3中setdefault的用法介绍(代码)

本篇文章给大家带来的内容是关于python3中setdefault的用法介绍(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

当字典 d[k]找不到正确的键时,Python会抛出异常,有没有一种优雅的方法来避免这种情况呢?答案是肯定的.

index0.py 从索引中获取单词出现的频率信息,并写入列表  –没有使用dict.setdefault

#!/usr/bin/env python# coding=utf-8import sys, reWORD_RE = re.compile(r'w+')index = {}with open(sys.argv[1], encoding='utf-8') as fp:    for line_no, line in enumerate(fp, 1):        for match in WORD_RE.finditer(line):            word = match.group()            column_no = match.start()+1            location = (line_no, column_no)            occurrences = index.get(word, [])            occurrences.append(location)            index[word] = occurrencesfor word in sorted(index, key=str.upper):    print(word, index[word])

登录后复制

zen.txt

The Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases aren't special enough to break the rules.Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation to guess.There should be one-- and preferably only one --obvious way to do it.Although that way may not be obvious at first unless you're Dutch.Now is better than never.Although never is often better than *right* now.If the implementation is hard to explain, it's a bad idea.If the implementation is easy to explain, it may be a good idea.Namespaces are one honking great idea -- let's do more of those!

登录后复制

执行 python3 index0.py zen.txt

a [(19, 48), (20, 53)]Although [(11, 1), (16, 1), (18, 1)]ambiguity [(14, 16)]and [(15, 23)]are [(21, 12)]aren [(10, 15)]at [(16, 38)]bad [(19, 50)]be [(15, 14), (16, 27), (20, 50)]beats [(11, 23)]Beautiful [(3, 1)]better [(3, 14), (4, 13), (5, 11), (6, 12), (7, 9), (8, 11), (17, 8), (18, 25)]break [(10, 40)]by [(1, 20)]cases [(10, 9)]...

登录后复制

index.py 使用了dict.setdefault 只用了一行就解决了获取和更新单词的出现情况列表

#!/usr/bin/env python# coding=utf-8import sys, reWORD_RE = re.compile(r'w+')index = {}with open(sys.argv[1], encoding='utf-8') as fp:    for line_no, line in enumerate(fp, 1):        for match in WORD_RE.finditer(line):            word = match.group()            column_no = match.start()+1            location = (line_no, column_no)            index.setdefault(word, []).append(location)for word in sorted(index, key=str.upper):    print(word, index[word])

登录后复制

也就是说:

my_dict.setdefault(key, []).append(new_value)

登录后复制

等价于

if key not in my_dict:    my_dict[key] = []my_dict[key].append(new_value)

登录后复制

二者效果相同,只是setdefault只需一次就完成整个操作,而后者需要进行两次查询

相关推荐:

在Python中操作字典之setdefault()方法的使用

立即学习“Python免费学习笔记(深入)”;

Python3里的super()和__class__使用介绍

以上就是python3中setdefault的用法介绍(代码)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2261175.html

(0)
上一篇 2025年2月27日 06:04:42
下一篇 2025年2月25日 00:59:18

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python中装饰器是什么?Python中装饰器的介绍

    本篇文章给大家带来的内容是关于python中装饰器是什么?python中装饰器的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一、什么是装饰器 装饰器,decorator,本质上是一个Python函数,它可以让其他函…

    编程技术 2025年2月27日
    200
  • python如何读写json数据(代码)

    本篇文章给大家带来的内容是关于python如何读写json数据(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 json 使用 Python 语言来编码和解码 JSON 对象。JSON(JavaScript Obje…

    2025年2月27日
    200
  • 关于python 下划线使用场景

    python提供了多个图形开发界面的库,本文给大家介绍一下关于python 下划线使用场景。 前导单下划线_var pep 8, 约定,  使用场景: 仅限内部使用, 比如只在类内部使用的函数,变量 注意:通配符导入 :from modul…

    编程技术 2025年2月27日
    200
  • Python的序列化和反序列化模块的简单介绍(实例代码)

    本篇文章给大家带来的内容是关于python的序列化和反序列化模块的简单介绍(实例代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 序列化:将对象转换为可通过网络传输或可存储到本地磁盘的数据格式的转换过程,称为序列化,反…

    2025年2月27日
    200
  • Python中any()和all()使用方法的简单介绍

    本篇文章给大家带来的内容是关于python中any()和all()使用方法的简单介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 引子 平常的文本处理工作中,我经常会遇到这么一种情况:用python判断一个string是…

    2025年2月27日
    200
  • python中正则表达式的简单介绍(附代码)

    本篇文章给大家带来的内容是关于python中正则表达式的简单介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一…

    编程技术 2025年2月27日
    200
  • python中如何搭建虚拟环境?python搭建虚拟环境的步骤

    本篇文章给大家带来的内容是关于python中如何搭建虚拟环境?python搭建虚拟环境的步骤,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1 . 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版…

    编程技术 2025年2月27日
    200
  • 什么是爬虫?python网络爬虫中概念的介绍

    本篇文章给大家带来的内容是关于什么是爬虫?python网络爬虫中概念的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 爬虫相关概念简介 a)什么是爬虫: 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的…

    编程技术 2025年2月27日
    200
  • 探索Python模块自动搜索路径

    本篇文章给大家带来的内容是关于探索Python模块自动搜索路径,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 最近在学习python的c++扩展(pybind11),写完一个扩展模块之后,想要在自己的环境中以后都能自动导入…

    2025年2月27日
    200
  • Python中函数的全面总结(附实例)

    本篇文章给大家带来的内容是关于python中函数的全面总结(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一.形参的动态参数: 动态参数,用于参数不确定时用.格式: def fun (*args)fun(args…

    2025年2月27日
    200

发表回复

登录后才能评论