为什么 Python 中不推荐使用 MutableString?

2024-04-15

为什么是可变字符串 http://docs.python.org/library/userdict.html#UserString.MutableStringPython 2.6 中已弃用的类;
为什么它在 Python 3 中被删除了?


The MutableString类的目的是具有教育意义,而不是在实际程序中使用。如果您查看实现,您会发现您无法在需要可变字符串的严肃应用程序中真正使用它。

如果您需要可变字节串,您可以考虑使用bytearrayPython 2.6 和 3.x 中提供了该功能。每次修改旧字符串时,该实现都不会创建新字符串,因此它更快、更可用。它还正确支持缓冲区协议,因此几乎可以在任何地方使用它来代替普通字节串。

如果您真的不打算按索引对单个字符串进行多次修改,那么通过创建新字符串来修改普通字符串应该适合您(例如通过str.replace, str.format and re.sub).

没有可变的 unicode 字符串,因为这被认为是不常见的应用程序,但您始终可以实现__unicode__ (or __str__对于 Python 3) 和encode自定义序列类型上的方法来模拟一种。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Python 中不推荐使用 MutableString? 的相关文章

  • 使用 python 中的公式函数使从 Excel 中提取的值的百分比相等

    import xlrd numpy excel Users Bob Desktop wb1 xlrd open workbook excel assignment3 xlsx sh1 wb1 sheet by index 0 colA co
  • 补丁 - 为什么相对补丁目标名称不起作用?

    我已经从模块导入了一个类 但是当我尝试修补类名而不使用模块作为前缀时 出现类型错误 TypeError Need a valid target to patch You supplied MyClass 例如 以下代码给出了上述错误 imp
  • Pandas:GroupBy 到 DataFrame

    参考这个关于 groupby 到 dataframe 的非常流行的问题 https stackoverflow com questions 10373660 converting a pandas groupby object to dat
  • Python - 来自 .进口

    我第一次尝试图书馆 我注意到解决图书馆内导入问题的最简单方法是使用如下结构 from import x from some module import y 我觉得这件事有些 糟糕 也许只是因为我不记得经常看到它 尽管公平地说我还没有深入研究
  • 保留完整姓氏,在 pandas 列中获取名字的首字母(如果有的话,还有中间名)

    我有一个 pandas 数据框 其中有一列表示几位网球运动员的姓氏和姓名 如下所示 Player 0 Roddick Andy 1 Federer Roger 2 Tsonga Jo Wilfred 我想保留完整的姓氏并获取姓名的首字母和中
  • pyspark 数据框中的自定义排序

    是否有推荐的方法在 pyspark 中实现分类数据的自定义排序 我理想地寻找 pandas 分类数据类型提供的功能 因此 给定一个数据集Speed列 可能的选项是 Super Fast Fast Medium Slow 我想实现适合上下文的
  • Python 中的流式传输管道

    我正在尝试使用 Python 将 vmstat 的输出转换为 CSV 文件 因此我使用类似的方法转换为 CSV 并将日期和时间添加为列 vmstat 5 python myscript py gt gt vmstat log 我遇到的问题是
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 一段时间后终止线程的最 Pythonic 方法

    我想在线程中运行一个进程 它正在迭代一个大型数据库表 当线程运行时 我只想让程序等待 如果该线程花费的时间超过 30 秒 我想终止该线程并执行其他操作 通过终止线程 我的意思是我希望它停止活动并优雅地释放资源 我认为最好的方法是通过Thre
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • 小组芹菜链任务

    shared task def process record x return 1 2 4 4 5 6 shared task def add pro id return pro id 10 shared task def dmap it
  • Tensorflow 与 Keras 的兼容性

    我正在使用 Python 3 6 和 Tensorflow 2 0 并且有一些 Keras 代码 import keras from keras models import Sequential from keras layers impo
  • 通过索引访问Python字典的元素

    考虑一个像这样的字典 mydict Apple American 16 Mexican 10 Chinese 5 Grapes Arabian 25 Indian 20 例如 我如何访问该字典的特定元素 例如 我想在对 Apple 的第一个
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • Jython 和 SAX 解析器:允许的实体不超过 64000 个?

    我做了一个简单的测试xml saxJython 中的解析器在处理大型 XML 文件 800 MB 时遇到以下错误 Traceback most recent call last File src project xmltools py li
  • 动态过滤 pandas 数据框

    我正在尝试使用三列的阈值来过滤 pandas 数据框 import pandas as pd df pd DataFrame A 6 2 10 5 3 B 2 5 3 2 6 C 5 2 1 8 2 df df loc df A gt 0
  • 当数据库不是 Django 模型时,是否可以使用数据库中的表?

    是否可以从应用程序数据库中的表获取查询集 该表不是应用程序中的模型 如果我有一个不是名为 cartable 的模型的表 从概念上讲 我想这样做 myqueryset cartable objects all 有没有相对简单的方法来做到这一点
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • 根据列中的部分字符串匹配选择数据框行

    我想根据列中字符串的部分匹配从数据框中选择行 例如列 x 包含字符串 hsa 使用sqldf if它有一个like语法 我会做类似的事情 select from lt gt where x like hsa 很遗憾 sqldf不支持该语法

随机推荐

  • asp.net mvc - ActionLink 的渲染不一致

    我有一个控制器 它接受以下两种格式的 URL 网络 添加或编辑 gt 在页面上呈现空白表单以添加新的网络对象 网络 AddOrEdit id gt 使用预填充表单呈现页面以编辑网络对象 带有 ID id 显然 每个实例中都使用相同的视图 我
  • 在 JavaScript 中逐行动态添加字幕到视频元素

    我想知道目前是否可行 下面是我的 HTML
  • Chrome DevTools 中缺少“添加到主屏幕”链接

    使用 Google 服务可能会令人沮丧 他们有令人难以置信的文档 但文档总是假设一切正常 如果有什么东西不像广告上说的那样有效 那你就完全靠自己了 没有错误消息 没有解决问题的帮助 甚至没有承认某些事情可能不起作用 以防万一 添加到主屏幕
  • 如何检索 C99 可变参数宏的最后一个参数?

    Visual Studio 失败的 static assert 错误消息完全由错误代码和 static assert 的第二个参数组成 没有任何其他消息表明这是静态断言失败 我想做一个宏来解决这个问题 例如 作为第一次尝试 define S
  • Winforms MVP

    我主要有 ASP Net 背景 懂一些 MVC 我也做了一些 Silverlight 和 MVVM 但是我现在即将转向 Winforms 我对它的经验很少 所以我想知道如何处理 MVP 典型的 MVP 示例显示演示者设置视图属性 通过某种
  • 如何从表中选择除最后 100 条之外的所有记录

    我有一个存储客户记录的数据库 我想设置一个 cron 作业来定期覆盖这些记录 我想说 Select from ORDERS where ORDER ID 不在列表的前 100 名中 每行都有自己的 order id 最新的 order id
  • 多个App服务使用同一个域名

    我们有一个场景 我们有多个 azure 应用程序服务 并且部署了 Web API 但是我们需要所有应用程序服务使用相同的域名 而不是子域 例如http example com api1 http example com api1在一个应用程
  • Postgres:在一项选择中获取最小值、最大值、聚合值

    我正在使用 Postgresql 8 4 我有一个这样的表 type value 1 5 2 6 1 4 3 10 我想写一个选择 它将给我最小值和最大值 以及所有类型的聚合integer 期望的结果应该是 min max types 4
  • SQL 连接具有特定条件的两个表

    表A结构 表B结构 上面是两个表 TableB TableARelationID是一个relationID 用于映射表A 期望的输出 期望的结果将采用 TableA RecordID 和 TableB Text 但仅采用表 B 中的类型 2
  • 在Python中不使用全局变量跟踪递归调用的数量

    如何在 Python 中不使用全局变量来跟踪递归调用的次数 例如 如何修改以下函数来跟踪调用次数 def f n if n 1 return 1 else return n f n 1 print f 5 这是一个不使用全局的巧妙技巧 您可
  • 使用 PHP Curl 发布数据并检索响应?

    我对使用网络服务非常陌生 所以我发现这很令人困惑 如果我有一个 URL 我想向其发布一些 JSON 数据 我知道如何使用 CURL PHP 方法来执行此操作 我想知道的是 如果我这样做 并且 URL 有某种服务器响应 我如何在我的 php
  • 如何选择30天的数据?

    我有疑问 SELECT name FROM SELECT name FROM Hist answer WHERE id city 34324 AND datetime gt DATE SUB CURRENT DATE INTERVAL 1
  • 如何列出导入的模块?

    如何枚举所有导入的模块 例如 我想得到 os sys 从这段代码 import os import sys import sys sys modules keys 仅获取当前模块的所有导入的近似方法是检查globals https docs
  • 来自 MDTool 的 .IPA 文件

    如何让 MDTool 为我的 MonoTouch 项目创建 IPA 文件 当我从 MonoDevelop GUI 应用程序中构建时 会创建 IPA 文件 But mdtool build configuration AppStore iPh
  • 静态文件application_可读用法

    我一直在尝试了解 application read 静态 url 处理程序字段的工作原理 我使用的是 SDK 版本 1 7 7 并且我已在开发环境中的应用程序上将其设置为 true 但我似乎无法实际读取该文件 app yaml url te
  • Scala 相当于 F# 中的 |> 或 Clojure 中的 ->>

    在 Scala 中 当我有这个表达式时 f1 f2 f3 p 有没有一种方法可以让我使用类似的东西 F p gt f3 gt f2 gt f1 还是 Clojure gt gt p f3 f2 f1 Scala 中没有相当于 F 的管道运算
  • 如何在一个 Tomcat + Apache 上部署多个 Grails 应用程序?

    我已经阅读了 StackOverflow 上的几个问题 并用 google 搜索了几个小时 但对于在一个 tomcat 5 5 使用 Apache 上部署多个 Grails 应用程序的问题 我找不到完整且清晰的答案 也许有人可以把我推向正确
  • C# 中的拳击发生

    我正在尝试收集 C 中发生装箱的所有情况 将值类型转换为System Object type struct S object box new S 将值类型转换为System ValueType type struct S System Va
  • 宽度为 100% 的 HTML 输入文本框溢出表格单元格

    有谁知道为什么宽度为 100 的输入元素会超出表格的单元格边框 在下面的简单示例中 输入框越过表格的单元格边框 结果非常糟糕 这已经过测试 并且在 Firefox IE7 和 Safari 上以相同的方式发生 这对你来说有意义吗 我错过了什
  • 为什么 Python 中不推荐使用 MutableString?

    为什么是可变字符串 http docs python org library userdict html UserString MutableStringPython 2 6 中已弃用的类 为什么它在 Python 3 中被删除了 The