2011-03-25 50 views
1

我需要一個乾淨的方法來確定一個字符串實際上是一個元組,像這樣:python:如何確定一個字符串是否包含一個元組?

「(123456)」 - >真

「世界你好」 - >假

我能想到的兩種方法可以做到這一點:

  1. 正則表達式
  2. 調用EVAL和catch /忽略一個SyntaxError

我不喜歡第二個選項。我很滿意第一種選擇,但只是想知道是否有更好的方法來做到這一點。

謝謝。

回答

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

+1比普通的'eval'好得多。 – delnan 2011-03-25 18:18:36

+0

當他通過'Hello World'時會引發異常 – GWW 2011-03-25 18:21:47

+0

@GWW:修正了這個問題。 – 2011-03-25 18:49:23

0

如果字符串中的元組只能有簡單的數字,則使用正則表達式。如果元組成員可以任意複雜(例如嵌套列表),請使用eval。

相關問題