在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()始终返回一个3元组,无论是否找到分隔符.

Python 3的另一种 Select .x使用extended iterable unpacking:

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

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

Python-3.x相关问答推荐

如何在Django中创建两个不同权限的用户?

将数据帧扩展为矩阵索引

为什么我的Selenium脚本在密码元素上失败?

数据类对象列表的字典获取方法-在数据类列表中查找具有特定变量值的数据类

错误:无法为 pyconcorde 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

通过在不重新索引的情况下采用最高概率的百分比,有效地转换 0/1 列表中的概率列表

有没有一种方法可以通过输入从 0 到 255 的 R、G 和 B 值来生成 RGB colored颜色 ,而无需使用 python 中的 matplotlib 模块?

python2和python3中的列表生成器

过滤查询集和Q运算符的不同值

根据另一列值对多个数据框列进行分组

如何准确测定cv2的结果.在BW/黑白图像中查找对象?

使用 python-binance 时,heroku [regex._regex_core.error: bad escape \d at position 7] 出错

如何模拟 Django 模型对象(及其方法)?

tensorflow 中 numpy.newaxis 的替代方案是什么?

如何通过命令行将数组传递给python

使用 Tensorflow 2.0 在 MNIST 上实现自定义神经网络?

在python中打印下标

Pyodbc:登录超时错误

为什么 TensorFlow 的 `tf.data` 包会减慢我的代码速度?

在 linux mint 上安装 python3-venv 模块