当前位置: 首页 > 面试题库 >

当它可能不包含模式或全部n个元素时,如何在Python中可靠地拆分字符串?

章学义
2023-03-14
问题内容

在Perl中,我可以执行以下操作:

my ($x, $y) = split /:/, $str;

无论字符串是否包含模式,它都将起作用。

但是在Python中,这将不起作用:

a, b = "foo".split(":")  # ValueError: not enough values to unpack

在这种情况下,防止错误的规范方法是什么?


问题答案:

如果您仅分成两部分(例如您的示例),则可以使用str.partition()得到的有保证的参数拆包大小为3:

>>> a, sep, b = 'foo'.partition(':')
>>> a, sep, b
('foo', '', '')

str.partition() 无论是否找到分隔符,总是返回一个三元组。

Python 3.x的另一种选择是使用扩展的可迭代拆包:

>>> a, *b = 'foo'.split(':')
>>> a, b
('foo', [])

这会将第一个拆分项目分配给,并将a剩余项目列表(如果有)分配给b



 类似资料:
  • 问题内容: 我想用多个定界符分割一个字符串,但将定界符保留在结果列表中。我认为这是解析任何一种公式的初始步骤都是有用的,而且我怀疑有一个不错的Python解决方案。 有人在这里用Java问了类似的问题。 例如,典型的拆分如下所示: 但是我正在寻找一种添加加号(或保留它)的好方法: 最终,我想对每个运算符和括号进行此操作,因此,如果有一种方法 一劳永逸,那就更好了。 问题答案: 您可以使用Pytho

  • 我是最新的办公室编程人员。我找不到任何描述运行中可能放置多少文本元素的文档。例如,我生成了这个xml,并将其直接放到“document.xml”中: 文档打开时没有错误。但在MS Word中保存文档后,此xml将替换为: 我的问题:用户有没有办法生成几个

  • 问题内容: 在不求助于蛮力技术或任何需要STL的情况下,计算n个可能元素的所有可能的length-r组合的最快方法是什么? 在为数据结构课程中的最终项目开发Apriori算法时,我开发了一个有趣的解决方案,该解决方案使用了移位和递归,下面将向有 兴趣的人分享一下答案。但是,这是实现此目标的最快方法(不使用任何公共库)吗? 出于好奇,我提出的要求更多,因为我目前拥有的算法可以很好地满足我的目的。 问

  • 硒的新手!我正在尝试使用selenium在Craigslist上列出待售房屋。 我在从下拉选择框中选择选项时遇到问题。 我收到以下错误: 元素不可操作异常:消息:元素不可交互:元素当前不可见,可能无法操作 使用“选择”也会产生同样的错误: 该元素存在: 但这并不是棘手的: 元素不可交互异常: 消息: 元素不可交互 我注意到选择元素是隐藏的,选择由选择框上的下一个元素控制。 我可以通过激活元素并使用

  • 现在假设用户enterd AAA-222 结果将是 ps.拆分的部分应该包括空格。

  • 问题内容: 我正在逐行读取.csv文件。例如,一行可能如下所示:。 现在我想根据“,”进行拆分:现在的问题是,这仅导致2个元素,但我想拥有5个元素,前两个元素应包含10和1,其他3个元素应为空串。 另一个例子是只包含一个元素,但我希望有5个元素。 最后一个示例给出了2个元素(9和1),但我希望有5个元素。第一个元素应为9,第四个元素应为1,所有其他元素应为空String。 如何才能做到这一点? 问