以最小尺寸分割字符串

2024-03-13

我正在编写一个 python 脚本,它将接受点分隔的版本号。它将把这个字符串分成单独的部分(使用句点(.) 作为分隔符)。我的脚本最多支持 4 个组件(例如1.2.3.4)。然而,用户可以指定less or more组件数量超过 4 个,我的脚本需要能够处理它。

如果少于 4,我从中返回的列表string.split()需要将大小调整为 4 并且缺少初始化为字符串的组件"0"。如果大于 4,则仅截断第四个组件之后的元素。

截断很简单,我只需拼接列表即可。但是,我不确定如何调整最多 4 个元素的大小。有没有一种Python式的方法可以做到这一点,或者我需要手写一堆逻辑来做到这一点?

我正在使用Python 3.2。


通常,您可以检查列表的长度,然后将缺少的列表添加回开头:

def pad_list(input_string, pad_length, pad_char='0'):
    base_version = input_string.split('.')[:pad_length]
    missing_entries = [pad_char] * pad_length - len(base_version)
    return base_version + missing_entries

实际上,这里唯一的补充是实际检查您获得的部分列表的长度,然后创建另一个与缺失部分长度相同的列表。

或者,您可以提前添加 0,以防它太短:

(a + '.' + '.'.join(['0'] * 4)).split('.')[:4]

这里第二行背后的想法是预先向版本字符串添加零,这有效地消除了填充问题。

首先,我们添加'.' + '.'.join(['0']*4)到字符串末尾a,这增加了.0.0.0.0到最后,这意味着无论字符串的其余部分有什么,实际上填充都在那里。

填充完成后,您可以像平常一样进行切片:.split('.')[:4]

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

以最小尺寸分割字符串 的相关文章

随机推荐

  • Caliburn Micro Xamarin 的数据绑定操作顺序

    Caliburn Micro Xamarin Android Mono Android 中数据绑定的 操作顺序 OOP 是什么 PS 解释 比较 Caliburn Micro Standard WPF Caliburn Micro Andr
  • libpng 错误:不是 PNG 文件

    我曾多次尝试将 Android Studio 构建工具升级到 1 3 1 以上 但最终总是遇到此 libpng 错误 我通过完全删除 Maven 依赖项解决了其中一个错误 因为 gradle 控制台准确地指出了问题文件所在的位置 但现在我遇
  • 无需 IDE 即可学习 C++

    我最近开始学习 C 并且对 IDE 和编译器的选择感到完全困惑 我擅长解释性语言 并且喜欢使用任何 IDE 或文本编辑器然后从命令行运行解释器的简单性 无论使用什么 IDE 一切都会按我的预期进行 因为我每次都使用相同的解释器 现在我已经开
  • 为什么比较器应该实现可序列化?

    Java 新手 在开发 Android 应用程序时学习它 我正在实现一个比较器来对文件列表和 android 文档进行排序say http developer android com reference java util Comparat
  • System.Runtime.Serialization.InvalidDataContractException:没有设置属性的方法

    正如错误所示 我的属性没有设置器 但我不需要设置器 它应该是只读的 编辑 制作设置器internal 这仍然可以在程序集中设置 但这是一个很好的技巧 当用于位于由其他人使用的程序集中的数据对象时效果很好 因为那些使用程序集将无法设置该属性
  • 如何在所选项目上启用工作流程状态“写入”?

    由于未授予工作流状态写入权限 某些项目没有写入访问权限 当我在 Access Viewer 中单击写入权限时 访问查看器通知我 由于工作流状态写入访问权限 所选用户没有访问权限 不幸的是 我无法通过安全编辑器 手动 设置它 任何人都可以阐明
  • 使用 xpath 和 telegram 即时视图提取、创建和附加

    我怎么能够create and append below a 使用上面代码中的标签XPath and 电报即时查看 https instantview telegram org docs功能 a href https expmle com
  • 如何获得 Aptana 的代码协助以与 Google Maps API v3 配合使用?

    有一个 Google 地图 API v3Visual Studio 智能感知助手 http gmapvsdoc codeplex com 这可能非常适合 Visual Studio 但 Aptana 基于 Eclipse 使用不同的 Jav
  • 发送密钥不起作用 selenium webdriver python

    我需要将文本发送到描述文本区域 有一些预定义的文本 单击后会被清除 我尝试在 sendkeys 之前使用 clear 或 click 但没有任何效果正常 它将向那里发送文本 但它仍然是灰色的 并且保存页面后出现错误 说明中没有文本 我可以使
  • 在 Java 中使用 String 和 Object 的 equals() 方法

    Object o1 new Object Object o2 new Object o1 o2 System out println o1 equals o2 它返回false 它可以返回true 如果评论被删除 为什么同样的事情不适用于S
  • 是否可以对我的 iPhone 应用程序进行逆向工程?

    我创建了一个 iPhone 应用程序 我想将编译后的 app 文件发送到我的客户端 以便他可以在他的设备上安装和测试这个 iPhone 应用程序 他是否有可能查看这个 app文件的内容 比如这个应用程序中使用的资源文件 图像 声音文件等 他
  • 在 PDF 中使用 Javascript 列出 XFA 对象的属性

    我正在尝试创建一个包含多个文本字段的 PDF 文档 这些文本字段的高度可以增长到某个最大值 由于项目的限制 我使用的是 Adob e Designer 7 它很高兴允许使用 Javascript 然而 XFA 中的对象与 HTML DOM
  • 验证不适用于 EntityManager.merge()

    我对我的实体几乎没有验证 例如 NotNull 还有一些一代人 比如 Id GeneratedValue strategy AUTO Column name ID private Long id Column GeneratedValue
  • 如何通过 CloudFront 将对象放入 S3

    我想通过 CloudFront 将图像上传到 S3 如果你看到关于CloudFront的文档 你可以发现cloud front提供了put方法来上传到cloudFront 可能会有人问我为什么使用云端上传到S3 如果你搜索一下 你就能找到解
  • 运算符和操作数的排列算法

    我在一个面试网站上看到了这个问题 我们有 4 个数字 即 n1 n2 n3 n4 我们可以将它们放置在任何 顺序 我们可以在它们之间使用数学运算符 最终结果为 24 为此编写一个算法 需要 4 个数字并返回 false 或 true 最终结
  • Eclipse 给出错误,最近更新后缺少 R.java 文件

    我已经更新了我的SDK and ADT到最新版本 我也更新了Eclipse to Kepler最新一篇之后Juno My ADT版本是22 0 在此更新之后 当我创建新项目时 出现错误 指出R cannot be resolved to a
  • 编写一个http嗅探器

    我想编写一个程序来通过数据包捕获提取系统访问的网站的 URL IP 地址 我认为该 URL 将出现在数据部分中 即不在任何标头中 ethernet ip tcp udp 此类程序有时称为http嗅探器 我不应该使用任何可用的工具 作为初学者
  • 无法解析 IntelliJ Idea IDE 中的符号 javafx.application

    我尝试创建一个JavaFXIntelliJ Idea IDE 中的应用程序 但我收到编译错误 java 包 javafx application 不存在 我已将项目 SDK 和项目语言级别更改为 Java 8 重新加载项目 但没有帮助 然后
  • 如何给 TriangleMesh 中的一些三角形着色?

    我想用不同的颜色为 TriangleMesh 的一些三角形着色 最简单的方法是什么 甚至可以在 fxml 文件中实现 java代码 import javafx application Application import javafx fx
  • 以最小尺寸分割字符串

    我正在编写一个 python 脚本 它将接受点分隔的版本号 它将把这个字符串分成单独的部分 使用句点 作为分隔符 我的脚本最多支持 4 个组件 例如1 2 3 4 然而 用户可以指定less or more组件数量超过 4 个 我的脚本需要