Прикреплённый файл «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 из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2011-09-26 11:35:30, 2.0 KB) [[attachment:arbuz.py]]
- [получить | показать] (2011-09-26 11:35:30, 1.9 KB) [[attachment:orddict.py]]
- [получить | показать] (2011-09-26 11:35:30, 2.4 KB) [[attachment:vector.py]]
Вам нельзя прикреплять файлы к этой странице.