-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 的每个元素都是在另一个类的帮助下形成的,这可能是这个排序函数不起作用的原因。可能的解决方案是什么?

4

1 回答 1

0

我得到 sorted(l1) 输出为 [(1, 1), (1, 2), (1, 3)] ,并且 sorted(l1) 等于 l1。我没有收到任何错误。

于 2012-08-22T20:48:39.900 回答