Python,测试集合/列表/元组的优雅方法,需要字符串

标签 python arrays string set typechecking

我正在构建一个 SQL 查询的正则表达式,并将其传递给一个 Python 函数。这是我当前正在做的事情(iterable 是传递给函数的变量):

if isinstance(iterable, (list, tuple, set)):
    app = '|'.join(iterable)

我希望能够测试一个抽象(请参阅集合模块的 ABC),这意味着它是一个容器,但不是一个basestring。 (这是可迭代的!)

有没有办法改进上述内容?

最佳答案

我认为不存在这样的东西 - 你拥有的可能是最好的。

有时,我的函数会接受字符串(我将对其进行拆分)或可迭代的字符串。对于这些,我通常会进行阴性测试,即

if isinstance(iterable, basestring):
    iterable = iterable.split(',')

等等

关于Python,测试集合/列表/元组的优雅方法,需要字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437214/

相关文章:

python - 如何比较 Pandas 中的两个字符串变量?

javascript - 使用javascript删除字符串中最后出现的逗号

python - 使用 python shell 的 SSH 和 exec channel

python - 名称 'variable_name' 既用作参数又用作全局名称。怎么修?

javascript - 使用 push() 后,数组被记录为数字

c++ - 初始化模板 2D std :array to 0 的最快方法

javascript - 将字符串解析为带有非严格尾随参数的参数数组

python - 有没有更好的方法在 python 中从十进制转换为二进制?

Python - 从 Web 应用程序启动长时间运行的进程

php - 使用php mysql将数组设置为数组中的列名