# Python program to demonstrate list# comprehension in Python# below list contains square of all# odd numbers from range 1 to 10
odd_square =[x **2for x inrange(1,11)if x %2==1]print(odd_square)
nums =[4,-7,9,1,-1,8,-6]
half_of_nums =[x/2for x in nums]#[2, -3.5, 4.5, 0.5, -0.5, 4, -3]#optionally you can add an if statement like this
half_of_positive_nums =[x/2for x in nums if x>=0]#[2, 4.5, 0.5, 4]
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
#example: removing common elements found in `a` from `b`.
a =[1,2,3,4,5]
b =[5,6,7,8,9]# desired output: [1,2,3,4]# gets each item found in `a` AND not in `b`print([i for i in a if i notin b])
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
lst=[1,2,3,4,5]
lst2=[item for item in lst if<condition>]# generates a list based on another list and an if statement. the code above is a replacement for:
lst=[1,2,3,4,5]
lst2=[]for item in lst:if<condition>:
lst2.append(item)
# This is the syntax of a general list comprehension expression in Python[expression
for x1 in it1 if cond1
for x2 in it2 if cond2
...for xn in itn if condn
]# hereby it1,..., itn are iterables and cond1, ..., condn boolean conditions# expression can depend on x1,...,xn and# itj and condj can depend on the variables x1,...,xj-1 quantified before it# The list comprehension expression is equivalent to the following nested # for-loop statement
res =[]for x1 in it1:if cond1:for x2 in it2:if cond2:...for xn in itn if condn:if condn:
res.append(expression)
# List comprehension examplelist=[0for i inrange(10)]# Makes a list of 10 zeros (Change 0 for different result# and range for different length)# Nested Listlist=[[0]*5for i inrange(10)]# Makes a nested list of 10 list containing 5 zeros (You can also change# all of the int to produce different results)
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
# List Comprehension# If one variable
power =[x**2for x inrange(1,10)]# If need two variables especially# when you work Dictionary with List Comprehension.# create a simple (key, value), tuple for context variables x and y
l_Comp =[(x,y)for x, y in employees.items()if y >=100000]
# List # new_list[<action> for <item> in <iterator> if <some condition>]
a =[i for i in'hello']# ['h', 'e', 'l', 'l', '0']
b =[i*2for i in[1,2,3]]# [2, 4, 6]
c =[i for i inrange(0,10)if i %2==0]# [0, 2, 4, 6, 8]
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
//if you want to take single intinput
a=int(input())//if you want n elements of array a asinputfrom console/user
a =list(map(int,input().strip().split()))# u can also covert it to set,tuple etc # ex. set(map(int, input().strip().split()))
NOTE: suppose if you want a listwith duplicates removed
list(set(map(int,input().strip().split())))
also note mapis a method andisnot hashmap which is actually disct in python.and ommitting .strip()in 2nd argument of map func might also work.# more explaination of above:
https://www.quora.com/What-does-the-following-line-mean-in-Python-list-map-int-input-strip-split-I
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
numbers =[1,2,3,4,5,6,7,8]
greater_than_4 =[number for number in numbers if number >4]defshorter_than_X(strings, max_length):return[string for string in strings iflen(string)< max_length]
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
# A list comprehnsion is a for loop on a single line # To create a list comprehension, swap the two lines in the for loop.# Here we use PyBIDS to extract the relative path for each file:for fmri in fmri_078:print(fmri.relpath)# And here is the equivalent statement as a list comprehension.# It must be enclosed in square brackets.# It swaps the order of the lines and loses the colon and indentation[print(fmri.relpath)for fmri in fmri_078 ]
# Make a List that contains the doubled values of a given list:
values =[2,4,6,8,10]
doubled_values =[x*2for x in values]print(doubled_values)# Outputs [4, 8, 12, 16, 20]# You could achieve the same result like this:
values =[2,4,6,8,10]
doubled_values =[]for x in values:
doubled_values.append(x*2)print(doubled_values)
friends =[{'name':'Sam','gender':'male','sport':'Basketball'},{'name':'Emily','gender':'female','sport':'Volleyball'}]# filter by column namesprint([{key: friend[key]for key in friend.keys()if key in["name","sport"]}for friend in friends])# filter by rowsprint([a for a in friends if a["name"]in["Sam"]])
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')
>>> vec =[-4,-2,0,2,4]>>># create a new list with the values doubled>>>[x*2for x in vec][-8,-4,0,4,8]>>># filter the list to exclude negative numbers>>>[x for x in vec if x >=0][0,2,4]>>># apply a function to all the elements>>>[abs(x)for x in vec][4,2,0,2,4]>>># call a method on each element>>> freshfruit =[' banana',' loganberry ','passion fruit ']>>>[weapon.strip()for weapon in freshfruit]['banana','loganberry','passion fruit']>>># create a list of 2-tuples like (number, square)>>>[(x, x**2)for x inrange(6)][(0,0),(1,1),(2,4),(3,9),(4,16),(5,25)]>>># the tuple must be parenthesized, otherwise an error is raised>>>[x, x**2for x inrange(6)]
File "<stdin>", line 1,in<module>[x, x**2for x inrange(6)]^
SyntaxError: invalid syntax
>>># flatten a list using a listcomp with two 'for'>>> vec =[[1,2,3],[4,5,6],[7,8,9]]>>>[num for elem in vec for num in elem][1,2,3,4,5,6,7,8,9]>>># List comprehensions can contain complex expressions and nested functions:>>>from math import pi
>>>[str(round(pi, i))for i inrange(1,6)]['3.1','3.14','3.142','3.1416','3.14159']
Yes:
result =[mapping_expr for value in iterable if filter_expr]
result =[{'key': value}for value in iterable
if a_long_filter_expression(value)]
result =[complicated_transform(x)for x in iterable if predicate(x)]
descriptive_name =[
transform({'key': key,'value': value}, color='black')for key, value in generate_iterable(some_input)if complicated_condition_is_met(key, value)]
result =[]for x inrange(10):for y inrange(5):if x * y >10:
result.append((x, y))return{x: complicated_transform(x)for x in long_generator_function(parameter)if x isnotNone}
squares_generator =(x**2for x inrange(10))
unique_names ={user.name for user in users if user isnotNone}
eat(jelly_bean for jelly_bean in jelly_beans
if jelly_bean.color =='black')