2012-08-22 32 views
-2
l1 = [[(1,1), (1,2), (1,3)]] 

for e in l1: 
    for i, c in enumerate(e): 
    n = re.search(r'(\d,\d)', c) 
    if n: 
     num = [int(y) for y in c.split(',')] 
     print "num is ", num 

     e[i] = Sequence_element(num[0], num[1]) 

if sorted(l1) != l1: 
    raise ValueError, 'l1 is not in sequence' 


class Sequence_element(object): 

    def __init__(self, first_elem, second_elem): 
     self._first_elem = first_elem 
     self._second_elem = second_elem 


    def first_elem(self): 
     return self._first_elem 

    def second_elem(self): 
     return self._second_elem 

此代碼是爲了確保(1,2)在(1,1)和(1,3)之後到達(1,1)和(1)之後,2)如何檢測元組列表的錯誤

我排序的錯誤(l1)給出[(1,3),(1,2),(1,1)] 這是錯誤的,因爲這應該給[(1,1), (1,2),(1,3)],這意味着不應該提高錯誤,而是提高錯誤率。

l1的每個元素都是通過另一個類的幫助形成的,這可能是這個排序函數不起作用的原因。什麼是可能的解決方案?

+1

無法重現 - 這對我不會產生錯誤。你是什​​麼意思「l1的每個元素是由另一個班級的幫助組成的」?上面的代碼是否會爲您提出異常或者是否有其他代碼存在問題? –

+2

你應該發佈相關的代碼。這個問題似乎並不像現在這樣有意義;排序的工作原理與你描述的一樣,應該和'l1 ==排序(l1)'。 –

+0

我已經發布了代碼 – smazon09

回答

0

我得到排序(l1)輸出爲[(1,1),(1,2),(1,3)],排序(l1)等於l1。我沒有收到任何錯誤。

+0

我剛剛編輯了我的問題 – smazon09