-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,1) の後に (1,2) が来て、(1,1) と (1,2) の後に (1,3) が来るようにするためのものです。

私がソートしたエラー(l1)は[(1,3)、(1,2)、(1,1)]を与えますが、これは[(1,1)、(1,2)、(1)を与えるはずなので間違っています,3)] これは、エラーが発生しているのにエラーが発生してはならないことを意味します。

l1 の各要素は別のクラスの助けを借りて形成されているため、このソートされた関数が機能しない可能性があります。可能な解決策は何ですか?

4

1 に答える 1

0

[(1, 1), (1, 2), (1, 3)] として sorted(l1) 出力を取得しており、sorted(l1) は l1 と同じです。エラーは発生しません。

于 2012-08-22T20:48:39.900 に答える