Despite enjoying my hacking experience in Python 🙂 there are a few rare constructs from other languages (mostly falling into the syntactic sugar category) that I am missing on occasion.
One such facility are Perl’s quote
operators.
I hate typing too much 🙂 and Perl’s quote
operator relieves me of typing all the quotes and commas normally needed to instantiate a list of words (see line 2).
1 bbox33:mhr $ perl -e ' 2 > @list = qw(The quick brown fox jumps over the lazy dog); 3 > print join('_', @list), "\\n"; 4 > ' 5 The_quick_brown_fox_jumps_over_the_lazy_dog
Conversely, initialising a list of strings in Python is messy since I have to type all that cruft (see line 10).
6 bbox33:mhr $ python 7 Python 2.5.1 Stackless 3.1b3 060516 (python-2.51:55546, May 24 2007, 08:50:09) 8 [GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin 9 Type "help", "copyright", "credits" or "license" for more information. 10 >>> list = ['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog'] 11 >>> print '_'.join(list) 12 The_quick_brown_fox_jumps_over_the_lazy_dog
The best shortcut I have found so far is to type all the words needed in a long string and split it (see line 13).
13 >>> list2 = 'The quick brown fox jumps over the lazy dog'.split() 14 >>> print '_'.join(list2) 15 The_quick_brown_fox_jumps_over_the_lazy_dog
Just wondering: did I miss some piece of Python magic here? Are there any other/better ways to initialise sequences of strings in Python?