List comprehensions, Python Programming

Assignment Help:

List Comprehensions

 

Python has a very nice built-in  facility for doing  many  iterative methods, known as list comprehensions. The basic template is

 

 

 

[ for in if ]

where is a single variable (or a tuple of variables), is a relation that evalu­ ates to a list, tuple,  or string, and is an expression that may use the variable . The if is optional; if it is showing, then only those variables  of

 

for which that expression is True are included in the resulting computation.

 

You can view  a list comprehension as a special  notation for a specific, very  general, class of

for loops.  It is equivalent to the following:

 

*resultVar* = []

for in :

if :

*resultVar*.append()

*resultVar*

 

We used a kind of funny notation *resultVar* to indicate that there is some anonymous list that is getting built  up  during the evaluation of the list comprehension, but  we have  no perfect way  of taking  it. The output  is a list, which  is obtained by successively binding to elements of the result  of evaluating , testing  to see whether they  meet  a situation, and  if they fulfil the condition, calculating and collecting  the results into a list.

 

Whew.  It is probably easier to understand it by example.

 

>>> [x/2.0 for x in [4, 5, 6]]

[2.0, 2.5, 3.0]

>>> [y**2 + 3 for y in [1, 10, 1000]]

[4, 103, 1000003]

>>> [a[0] for a in [['Nal', 'Morty'],['Jacob','White'],

['Leslie','Kaelbling']]] ['Nal', 'Jacob', 'Leslie']

>>> [a[0]+'!' for a in [['Nal', 'Morty'],['Jacob','White'], ['Leslie','Kaelbling']]]

['Nal!', 'Jacob!', 'Leslie!']

 

Imagine that you have a list of numbers and you want  to construct a list containing just the ones that are not even.  You may  write

 

>>> nums = [1, 2, 5, 6, 88, 99, 101, 10000, 100, 37, 101]

>>> [x for x in nums if x%2==1]

[1, 5, 99, 101, 37, 101]

 

Note the use of the if and else condition here to add only particular values  of x.

And, of course, you can combine this with the other abilities of list comprehensions, to, for code, give the squares of the odd  numbers:

 

>>> [x*x for x in nums if x%2==1]

[1, 25, 9801, 10201, 1369, 10201]

 

You can also take structured statements in list comprehensions

 

>>> [first for (first, last) in [['Nal', 'Morty'],['Rose','Red'], ['Leslie','Kaelbling']]]

['Nal', 'Rose', 'Leslie']

>>> [first+last for (first, last) in [['Nal', 'Morty'],['Rose','Red'],

['Leslie','Kaelbling']]]

['NalMorty', 'RoseRed', 'LeslieKaelbling']

 

Another built-in  function that is useful  with list comprehensions is zip. Here are some codes of how it works:

 

> zip([1, 2, 3],[4, 5, 6])

[(1, 4), (2, 5), (3, 6)]

> zip([1,2], [3, 4], [5, 6])

[(1, 3, 5), (2, 4, 6)]

 

Here is an example of using  zip with a list comprehension:

 

>>> [first+last for (first, last) in zip(['Nal', 'Rose', 'Leslie'],

['Morty','Red','Kaelbling'])]

['NalMorty', 'RoseRed', 'LeslieKaelbling']

Note that this last program is very different from this one:

>>> [first+last for first in ['Nal', 'Rose', 'Leslie'] \

for last in ['Morty','Red','Kaelbling']]

['NalMorty', 'NalRed', 'NalKaelbling', 'RoseMorty', 'RoseRed',

'RoseKaelbling', 'LeslieMorty', 'LeslieRed', 'LeslieKaelbling']

 

Nested list comprehensions behave like nested for loop structure,  the expression in the structure comprehension is calculated for every combination of the values  of the variables

 


Related Discussions:- List comprehensions

Coding examples of python, Coding examples Following are some  attempts...

Coding examples Following are some  attempts at defining a function isSubset,  which  takes  two  arguments, a and  b, and  returns True if a is a subset  of b, assuming that

Interaction and debugging, We encourage you to adopt an interactive style o...

We encourage you to adopt an interactive style of debugging and programming. Use the Python shell a lot. Write short pieces of code and check them.  It is much  simpler to test the

Common Vulnerabilities, 1 Low Level Exploits 1.1 Savegames Jimmy is becomi...

1 Low Level Exploits 1.1 Savegames Jimmy is becoming increasingly frustrated at the computer game hes playing. He has a save right before the levels boss but he needs either more

Algorithm, given number is prime number or not

given number is prime number or not

Common Vulnerabilities, 1 Low Level Exploits 1.1 Savegames Jimmy is becomi...

1 Low Level Exploits 1.1 Savegames Jimmy is becoming increasingly frustrated at the computer game hes playing. He has a save right before the levels boss but he needs either more

Algorithms, Write an algorithm for the sum of the given series 1,-1/2,1/4,-...

Write an algorithm for the sum of the given series 1,-1/2,1/4,-1/8.....

Particle Movement, Imagine a "particle" located on the centre square of a t...

Imagine a "particle" located on the centre square of a two-dimensional grid of dimensions 11 by 75. The particle can only move one square at a time, either up, down, left, or right

Procedures as First-class objects, Procedures as First-class objects I...

Procedures as First-class objects In Python, unlike  many  other  languages, methods are behave in much  the same way as num­ bers:  they  can be stored as values  of variable

Python programs, Python programs Every  general-purpose computer has a...

Python programs Every  general-purpose computer has a various detailed design, which  defines  that  the way  its program requires  to be specified is different. The "machine

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd