Python is an object-oriented, high-level programming language with integrated dynamic semantics primarily for web and app development. It is extremely attractive in the field of Rapid Application Development because it offers dynamic typing and dynamic binding options.
Python is relatively simple, so it’s easy to learn since it requires a unique syntax that focuses on readability. Developers can read and translate Python code much easier than other languages. In turn, this reduces the cost of program maintenance and development because it allows teams to work collaboratively without significant language and experience barriers.
In this article, I will introduce 5 useful Python tips for beginners. Whether you choose just a Python programming book or you’ve been through one or two projects, some or all of these tips may be helpful for your future projects.
itertools
is probably one of my favorite Python library. Imagine your code had a dozen of lists and after some manipulation, you ended up with a deeply nested list. itertools
is exactly what you need to resolve this syntactical mess.
>>> import itertools
>>> flatten = lambda x: list(itertools.chain.from_iterable(x))
>>> s = [['"', 'An', 'investment'], ['in'], ['knowledge'], ['pays'], ['the', 'best'], ['interest."', '--'], ['Benjamin'], ['Franklin']]
>>> print(' '.join(flatten(s)))
" An investment in knowledge pays the best interest." -- Benjamin Franklin
As you can see from the example above, we can combine nested lists and strings using .join()
and itertools
. .combinations()
method in itertools is also a powerful tool to return the length subsequences of elements from the input iterable. ` .
Are you tired of reading through lines of code and getting lost in conditional statements? Python one-liners might just be what you are looking for. For example, the conditional statements
>>> if alpha > 7:
>>> beta = 999
>>> elif alpha == 7:
>>> beta = 99
>>> else:
>>> beta = 0
can really be simplified to:
>>> beta = 999 if alpha > 7 else 99 if alpha == 7 else 0
This is ridiculous! Should you pay more attention to the code you wrote, you’d always find places where you can simplify as one-liners. Besides conditional statements, for
loops can also be simplified too. For example, doubling a list of integer in four lines
>>> lst = [1, 3, 5]
>>> doubled = []
>>> for num in lst:
>>> doubled.append(num*2)
can be simplified to just one line:
>>> doubled = [num * 2 for num in lst]
Of course, it might get a bit messy if you chain everything into one-liners. Make sure you aren’t overusing one-liners in your code, as one might argue that the extensive use of one-liners is “un-Pythonic”.
>>> import pprint; pprint.pprint(zip(('Byte', 'KByte', 'MByte', 'GByte', 'TByte'), (1 << 10*i for i in xrange(5))))
Going back to Trick #2, it is also very easy to use one-liner to initialize data structures in Python. Harold Cooper has implemented a one-liner tree structure using the following code:
>>> def tree(): return defaultdict(tree)
The code shown above simply defines a tree that is a dictionary whose default values are trees. Other one-liner functions such as prime number generator
>>> reduce( (lambda r,x: r-set(range(x**2,N,x)) if (x in r) else r),
range(2,N), set(range(2,N)))
can be found all over Github and Stack Overflow. Python also has powerful libraries such as Collections , which will help you to solve a variety of real-life problems without writing lengthy code.
>>> from collections import Counter
>>> myList = [1,1,2,3,4,5,3,2,3,4,2,1,2,3]
>>> print(Counter(myList))
Counter({2: 4, 3: 4, 1: 3, 4: 2, 5: 1})
String manipulations can be tricky , but Python has hidden shorthands to make your life significantly easier. To reverse a string, we simply add ::-1 as list indices
>>> a = "ilovepython"
>>> print a[::-1]
nohtypevoli
The same trick can be applied to a list of integers as well. String manipulation is extremely easy in Python. For example, if you want to output a sentence using the following predefined variables str1
, str2
and lst3
>>> str1 = "Totally"
>>> str2 = "Awesome"
>>> lst3 = ["Omg", "You", "Are"]
Simply use the .join()
method and arithmetic operators to create the desired sentence.
>>> print ' '.join(lst3)
Omg You Are
>>> print ' '.join(lst3)+' '+str1+' '+str2
Omg You Are Totally Awesome
Besides string manipulation, I also recommend reading more about regex (regular expressions) to effectively search through strings and filter patterns.
The last trick is something I wish I had known earlier. Turns out to print an array with strings as one comma-separated string, we do not need to use .join()
and loops.
>>> row = ["1", "bob", "developer", "python"]
>>> print(','.join(str(x) for x in row))
1,bob,developer,python
This simple one-liner will do:
>>> print(*row, sep=',')
1,bob,developer,python
Another neat printing trick is to make use of enumerate
. enumerateis
a built-in function of Python which is incredibly useful. So instead of writing a four-line code to print
>>> iterable = ['a','b','c']
>>> c = 0
>>> for item in iterable:
>>> print c, item
>>> c+= 1
0 a
1 b
2 c
The same can be done under just two lines
>>> for c, item in enumerate(iterable):
>>> print c, item
This article is the end ! These are 5 Python Tricks I want to share with you, hope it will help you.
Thanks for reading !
#python #programming