python:如何确定字符串是否包含元组?

时间:2011-03-25 18:13:02

标签: python string eval tuples

我需要一种干净的方法来确定字符串是否实际上是一个元组,如下所示:

'(123,456)' - >真

'hello world' - >假

我可以想到两种方法:

  1. 正则表达式
  2. 调用eval并捕获/忽略SyntaxError
  3. 我不喜欢第二种选择。我对第一个选项很好,但只是想知道是否有更好的方法来做到这一点。

    感谢。

2 个答案:

答案 0 :(得分:7)

def represents_tuple(s):
    try: return type(ast.literal_eval(s)) == tuple
    except SyntaxError: return False
    except ValueError: return False

答案 1 :(得分:0)

如果字符串中的元组只能有简单的数字,那么使用正则表达式。如果元组成员可以是任意复杂的(例如嵌套列表),请使用eval。