Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #35459 > unrolled thread
| Started by | Pander Musubi <pander.musubi@gmail.com> |
|---|---|
| First post | 2012-12-24 07:32 -0800 |
| Last post | 2012-12-28 02:27 -0800 |
| Articles | 9 — 5 participants |
Back to article view | Back to comp.lang.python
Custom alphabetical sort Pander Musubi <pander.musubi@gmail.com> - 2012-12-24 07:32 -0800
Re: Custom alphabetical sort Thomas Bach <thbach@students.uni-mainz.de> - 2012-12-24 17:11 +0100
Re: Custom alphabetical sort Pander Musubi <pander.musubi@gmail.com> - 2012-12-24 08:34 -0800
Re: Custom alphabetical sort Ian Kelly <ian.g.kelly@gmail.com> - 2012-12-24 10:29 -0700
Re: Custom alphabetical sort Pander Musubi <pander.musubi@gmail.com> - 2012-12-24 08:34 -0800
Re: Custom alphabetical sort wxjmfauth@gmail.com - 2012-12-27 10:17 -0800
Re: Custom alphabetical sort Terry Reedy <tjreedy@udel.edu> - 2012-12-27 17:17 -0500
Re: Custom alphabetical sort Ian Kelly <ian.g.kelly@gmail.com> - 2012-12-27 16:17 -0700
Re: Custom alphabetical sort wxjmfauth@gmail.com - 2012-12-28 02:27 -0800
| From | Pander Musubi <pander.musubi@gmail.com> |
|---|---|
| Date | 2012-12-24 07:32 -0800 |
| Subject | Custom alphabetical sort |
| Message-ID | <40d108ec-b019-4829-a969-c8ef513866f1@googlegroups.com> |
Hi all,
I would like to sort according to this order:
(' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
How can I do this? The default sorted() does not give the desired result.
Thanks,
Pander
[toc] | [next] | [standalone]
| From | Thomas Bach <thbach@students.uni-mainz.de> |
|---|---|
| Date | 2012-12-24 17:11 +0100 |
| Message-ID | <mailman.1257.1356365475.29569.python-list@python.org> |
| In reply to | #35459 |
On Mon, Dec 24, 2012 at 07:32:56AM -0800, Pander Musubi wrote:
> I would like to sort according to this order:
>
> (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
>
One option is to use sorted's key parameter with an appropriate
mapping in a dictionary:
>>> cs = (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
>>> d = { k: v for v, k in enumerate(cs) }
>>> import random
>>> ''.join(sorted(random.sample(cs, 20), key=d.get))
'5aAàÀåBCçËÉíÎLÖøquùx'
Regards,
Thomas.
[toc] | [prev] | [next] | [standalone]
| From | Pander Musubi <pander.musubi@gmail.com> |
|---|---|
| Date | 2012-12-24 08:34 -0800 |
| Message-ID | <0181c694-7605-4857-8469-baf214c85820@googlegroups.com> |
| In reply to | #35463 |
On Monday, December 24, 2012 5:11:03 PM UTC+1, Thomas Bach wrote:
> On Mon, Dec 24, 2012 at 07:32:56AM -0800, Pander Musubi wrote:
>
> > I would like to sort according to this order:
>
> >
>
> > (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
>
> >
>
>
>
> One option is to use sorted's key parameter with an appropriate
>
> mapping in a dictionary:
>
>
>
> >>> cs = (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
>
>
>
> >>> d = { k: v for v, k in enumerate(cs) }
>
>
>
> >>> import random
>
>
>
> >>> ''.join(sorted(random.sample(cs, 20), key=d.get))
>
> '5aAàÀåBCçËÉíÎLÖøquùx'
This doesn't work for words with more than one character:
>>> test=('øasdf', 'áá', 'aa', 'a123','á1234', 'Aaa', )
>>> sorted(test, key=d.get)
['\xc3\xb8asdf', '\xc3\xa1\xc3\xa1', 'aa', 'a123', '\xc3\xa11234', 'Aaa']
>
>
>
> Regards,
>
> Thomas.
[toc] | [prev] | [next] | [standalone]
| From | Ian Kelly <ian.g.kelly@gmail.com> |
|---|---|
| Date | 2012-12-24 10:29 -0700 |
| Message-ID | <mailman.1260.1356370208.29569.python-list@python.org> |
| In reply to | #35467 |
[Multipart message — attachments visible in raw view] — view raw
On Dec 24, 2012 9:37 AM, "Pander Musubi" <pander.musubi@gmail.com> wrote:
> > >>> ''.join(sorted(random.sample(cs, 20), key=d.get))
> >
> > '5aAàÀåBCçËÉíÎLÖøquùx'
>
> This doesn't work for words with more than one character:
Try this instead:
def collate(x):
return list(map(d.get, x))
sorted(data, key=collate)
I would also probably change "d.get" to "d.__getitem__" for a clearer error
message in the case the string contains characters that it doesn't know how
to sort.
[toc] | [prev] | [next] | [standalone]
| From | Pander Musubi <pander.musubi@gmail.com> |
|---|---|
| Date | 2012-12-24 08:34 -0800 |
| Message-ID | <mailman.1258.1356366879.29569.python-list@python.org> |
| In reply to | #35463 |
On Monday, December 24, 2012 5:11:03 PM UTC+1, Thomas Bach wrote:
> On Mon, Dec 24, 2012 at 07:32:56AM -0800, Pander Musubi wrote:
>
> > I would like to sort according to this order:
>
> >
>
> > (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
>
> >
>
>
>
> One option is to use sorted's key parameter with an appropriate
>
> mapping in a dictionary:
>
>
>
> >>> cs = (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
>
>
>
> >>> d = { k: v for v, k in enumerate(cs) }
>
>
>
> >>> import random
>
>
>
> >>> ''.join(sorted(random.sample(cs, 20), key=d.get))
>
> '5aAàÀåBCçËÉíÎLÖøquùx'
This doesn't work for words with more than one character:
>>> test=('øasdf', 'áá', 'aa', 'a123','á1234', 'Aaa', )
>>> sorted(test, key=d.get)
['\xc3\xb8asdf', '\xc3\xa1\xc3\xa1', 'aa', 'a123', '\xc3\xa11234', 'Aaa']
>
>
>
> Regards,
>
> Thomas.
[toc] | [prev] | [next] | [standalone]
| From | wxjmfauth@gmail.com |
|---|---|
| Date | 2012-12-27 10:17 -0800 |
| Message-ID | <8fc90ea6-4787-4f98-b4b8-c3ae5418d5f0@googlegroups.com> |
| In reply to | #35459 |
Le lundi 24 décembre 2012 16:32:56 UTC+1, Pander Musubi a écrit :
> Hi all,
>
>
>
> I would like to sort according to this order:
>
>
>
> (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
>
>
>
> How can I do this? The default sorted() does not give the desired result.
>
-----
One way is to create a list of 2-lists / 2-tuples, like
[(modified_word_1, word_1), (modified_word_2, word_2), ...]
and to use the native sorting wich will use the first element
modified_word_2 as primary key.
The task lies in the creation of the primary keys.
I did it once for French (seriously) and for German (less
seriously) scripts. (Only as an exercise for fun).
Eg.
>>> rob = ['noduleux', 'noël', 'noèse', 'noétique',
... 'nœud', 'noir', 'noirâtre']
>>> z = list(rob)
>>> random.shuffle(z)
>>> z
['noirâtre', 'noèse', 'noir', 'noël', 'nœud', 'noétique',
'noduleux']
>>> zo = libfrancais.sortfr(z)
>>> zo
['noduleux', 'noël', 'noèse', 'noétique', 'nœud', 'noir',
'noirâtre']
>>> zo == rob
True
PS Py 3.3 warranty: ~30% slower than Py 3.2
jmf
[toc] | [prev] | [next] | [standalone]
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Date | 2012-12-27 17:17 -0500 |
| Message-ID | <mailman.1374.1356646698.29569.python-list@python.org> |
| In reply to | #35630 |
On 12/27/2012 1:17 PM, wxjmfauth@gmail.com wrote:
> Le lundi 24 décembre 2012 16:32:56 UTC+1, Pander Musubi a écrit :
>> I would like to sort according to this order:
>> (' ', '.', '\'', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'ä', 'Ä', 'á', 'Á', 'â', 'Â', 'à', 'À', 'å', 'Å', 'b', 'B', 'c', 'C', 'ç', 'Ç', 'd', 'D', 'e', 'E', 'ë', 'Ë', 'é', 'É', 'ê', 'Ê', 'è', 'È', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'ï', 'Ï', 'í', 'Í', 'î', 'Î', 'ì', 'Ì', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'ñ', 'N', 'Ñ', 'o', 'O', 'ö', 'Ö', 'ó', 'Ó', 'ô', 'Ô', 'ò', 'Ò', 'ø', 'Ø', 'p', 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'ü', 'Ü', 'ú', 'Ú', 'û', 'Û', 'ù', 'Ù', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z')
> One way is to create a list of 2-lists / 2-tuples, like
>
> [(modified_word_1, word_1), (modified_word_2, word_2), ...]
>
> and to use the native sorting wich will use the first element
> modified_word_2 as primary key.
>
> The task lies in the creation of the primary keys.
>
> I did it once for French (seriously) and for German (less
> seriously) scripts. (Only as an exercise for fun).
> >>> rob = ['noduleux', 'noël', 'noèse', 'noétique',
> ... 'nœud', 'noir', 'noirâtre']
> >>> z = list(rob)
> >>> random.shuffle(z)
> >>> z
> ['noirâtre', 'noèse', 'noir', 'noël', 'nœud', 'noétique',
> 'noduleux']
> >>> zo = libfrancais.sortfr(z)
> >>> zo
> ['noduleux', 'noël', 'noèse', 'noétique', 'nœud', 'noir',
> 'noirâtre']
> >>> zo == rob
> True
> PS Py 3.3 warranty: ~30% slower than Py 3.2
Do you have any actual timing data to back up that claim?
If so, please give specifics, including build, os, system, timing code,
and result.
--
Terry Jan Reedy
[toc] | [prev] | [next] | [standalone]
| From | Ian Kelly <ian.g.kelly@gmail.com> |
|---|---|
| Date | 2012-12-27 16:17 -0700 |
| Message-ID | <mailman.1375.1356650314.29569.python-list@python.org> |
| In reply to | #35630 |
On Thu, Dec 27, 2012 at 3:17 PM, Terry Reedy <tjreedy@udel.edu> wrote:
>> PS Py 3.3 warranty: ~30% slower than Py 3.2
>
>
> Do you have any actual timing data to back up that claim?
> If so, please give specifics, including build, os, system, timing code, and
> result.
There was another thread about this one a while back. Using IDLE on Windows XP:
>>> import timeit, locale
>>> li = ['noël', 'noir', 'nœud', 'noduleux', 'noétique', 'noèse', 'noirâtre']
>>> locale.setlocale(locale.LC_ALL, 'French_France')
'French_France.1252'
>>> # Python 3.2
>>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=100000))
1.1581226105552531
>>> # Python 3.3.0
>>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=100000))
1.4595282361305697
1.460 / 1.158 = 1.261
>>> li = li * 100
>>> import random
>>> random.shuffle(li)
>>> # Python 3.2
>>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=1000))
1.233450899485831
>>> # Python 3.3.0
>>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=1000))
1.5793845307155152
1.579 / 1.233 = 1.281
So about 26% slower for sorting a short list of French words and about
28% slower for a longer list. Replacing the strings with ASCII and
removing the 'key' argument gives a comparable result for the long
list but more like a 40% slowdown for the short list.
[toc] | [prev] | [next] | [standalone]
| From | wxjmfauth@gmail.com |
|---|---|
| Date | 2012-12-28 02:27 -0800 |
| Message-ID | <37144730-1421-4ff9-9227-7b1cd163bb13@googlegroups.com> |
| In reply to | #35660 |
Le vendredi 28 décembre 2012 00:17:53 UTC+1, Ian a écrit :
> On Thu, Dec 27, 2012 at 3:17 PM, Terry Reedy <tjreedy@udel.edu> wrote:
>
> >> PS Py 3.3 warranty: ~30% slower than Py 3.2
>
> >
>
> >
>
> > Do you have any actual timing data to back up that claim?
>
> > If so, please give specifics, including build, os, system, timing code, and
>
> > result.
>
>
>
> There was another thread about this one a while back. Using IDLE on Windows XP:
>
>
>
> >>> import timeit, locale
>
> >>> li = ['noël', 'noir', 'nœud', 'noduleux', 'noétique', 'noèse', 'noirâtre']
>
> >>> locale.setlocale(locale.LC_ALL, 'French_France')
>
> 'French_France.1252'
>
>
>
> >>> # Python 3.2
>
> >>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=100000))
>
> 1.1581226105552531
>
>
>
> >>> # Python 3.3.0
>
> >>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=100000))
>
> 1.4595282361305697
>
>
>
> 1.460 / 1.158 = 1.261
>
>
>
> >>> li = li * 100
>
> >>> import random
>
> >>> random.shuffle(li)
>
>
>
> >>> # Python 3.2
>
> >>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=1000))
>
> 1.233450899485831
>
>
>
> >>> # Python 3.3.0
>
> >>> min(timeit.repeat("sorted(li, key=locale.strxfrm)", "import locale; from __main__ import li", number=1000))
>
> 1.5793845307155152
>
>
>
> 1.579 / 1.233 = 1.281
>
>
>
> So about 26% slower for sorting a short list of French words and about
>
> 28% slower for a longer list. Replacing the strings with ASCII and
>
> removing the 'key' argument gives a comparable result for the long
>
> list but more like a 40% slowdown for the short list.
----
Not related to this thread, for information.
My sorting algorithm is doing a little bit more than a
"locale.strxfrm". locale.strxfrm works precisely fine with
the list I gave as an exemple, it fails in many cases. One
of the bottlenecks is the "œ", which must be seen as "oe".
It is not the place to discuss this kind of linguistic aspects
here.
My algorithm does not use unicodedata or unicode normalization.
Mainly a lot of chars / substrings substitution for the
creation of the primary keys.
jmf
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web