Прикреплённый файл «orddict.py»

Загрузка

   1 #!/usr/bin/python
   2 # coding: utf-8
   3 '''
   4 Написать свой класс ord_dict, унаследовав его от стандартного dict, сделав так, чтобы все элементы имели определенный порядок. 
   5 '''
   6 
   7 # ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
   8 class ord_dict(dict):
   9     def __iter__(self):
  10         k=dict.keys(self)
  11         k.sort()
  12         return iter(k)
  13     def keys(self):
  14         return [k for k in self]
  15     def iterkeys(self):
  16         return self.__iter__()
  17     def items(self):
  18         return [(k,self[k]) for k in self]
  19     def iteritems(self):
  20         return ((k,self[k]) for k in self)
  21     def values(self):
  22         return [self[k] for k in self]
  23     def itervalues(self):
  24         return (self[k] for k in self)
  25     def __repr__(self):
  26         return "{"+", ".join("{0}: {1}".format(*d) for d in self.iteritems())+"}"
  27 
  28 D1={5:2, 9:7}
  29 D1.update({1:3,6:0,11:1})
  30 D2=ord_dict({5:2, 9:7})
  31 D2.update({1:3,6:0,11:1})
  32 print D1,str(D1)
  33 print D2,str(D2)
  34 for f in "keys", "items", "values":
  35     print f,eval("D1.{0}()".format(f))
  36     print f,eval("D2.{0}()".format(f))
  37 for f in "iterkeys", "iteritems", "itervalues":
  38     print f,
  39     for d in eval("D1.{0}()".format(f)):
  40         print d,
  41     print "\n",f,
  42     for d in eval("D2.{0}()".format(f)):
  43         print d,
  44     print ""
  45 
  46 print "__iter__ "+" ".join(("{0}".format(d) for d in D1))
  47 print "__iter__ "+" ".join(("{0}".format(d) for d in D2))

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.