Cython has moved to github.

cython-devel

view tests/run/iterdict.pyx @ 1376:e490ccfecad0

handle value coercion correctly in dict iteration
author Stefan Behnel <scoder@users.berlios.de>
date Tue Nov 25 18:24:52 2008 +0100 (3 years ago)
parents 875a228251ae
children 945bbbdc0f93
line source
1 __doc__ = u"""
2 >>> dict_size = 4
3 >>> d = dict(zip(range(10,dict_size+10), range(dict_size)))
5 >>> items(d)
6 [(10, 0), (11, 1), (12, 2), (13, 3)]
7 >>> iteritems(d)
8 [(10, 0), (11, 1), (12, 2), (13, 3)]
9 >>> iteritems_int(d)
10 [(10, 0), (11, 1), (12, 2), (13, 3)]
11 >>> iteritems_tuple(d)
12 [(10, 0), (11, 1), (12, 2), (13, 3)]
13 >>> iterkeys(d)
14 [10, 11, 12, 13]
15 >>> iterkeys_int(d)
16 [10, 11, 12, 13]
17 >>> iterdict(d)
18 [10, 11, 12, 13]
19 >>> iterdict_int(d)
20 [10, 11, 12, 13]
21 >>> itervalues(d)
22 [0, 1, 2, 3]
23 >>> itervalues_int(d)
24 [0, 1, 2, 3]
25 """
27 def items(dict d):
28 l = []
29 for k,v in d.items():
30 l.append((k,v))
31 l.sort()
32 return l
34 def iteritems(dict d):
35 l = []
36 for k,v in d.iteritems():
37 l.append((k,v))
38 l.sort()
39 return l
41 def iteritems_int(dict d):
42 cdef int k,v
43 l = []
44 for k,v in d.iteritems():
45 l.append((k,v))
46 l.sort()
47 return l
49 def iteritems_tuple(dict d):
50 l = []
51 for t in d.iteritems():
52 l.append(t)
53 l.sort()
54 return l
56 def iterkeys(dict d):
57 l = []
58 for k in d.iterkeys():
59 l.append(k)
60 l.sort()
61 return l
63 def iterkeys_int(dict d):
64 cdef int k
65 l = []
66 for k in d.iterkeys():
67 l.append(k)
68 l.sort()
69 return l
71 def iterdict(dict d):
72 l = []
73 for k in d:
74 l.append(k)
75 l.sort()
76 return l
78 def iterdict_int(dict d):
79 cdef int k
80 l = []
81 for k in d:
82 l.append(k)
83 l.sort()
84 return l
86 def itervalues(dict d):
87 l = []
88 for v in d.itervalues():
89 l.append(v)
90 l.sort()
91 return l
93 def itervalues_int(dict d):
94 cdef int v
95 l = []
96 for v in d.itervalues():
97 l.append(v)
98 l.sort()
99 return l