python and in list comprehension code example
Example 1: list comprehension python
# All of the possibilies that can be done with the List Comprehension
vec = [-4, -2, 0, 2, 4]
# create a new list with the values doubled
doubled = [x*2 for x in vec]
# [-8, -4, 0, 4, 8]
# filter the list to exclude negative numbers
greater_thatn_0 = [x for x in vec if x >= 0]
# output [0, 2, 4]
# apply a function to all the elements
positive = [abs(x) for x in vec]
# output [4, 2, 0, 2, 4]
# call a method on each element
freshfruit = [' banana', ' loganberry ', 'passion fruit ']
fruits_nospaces = [weapon.strip() for weapon in freshfruit]
# output ['banana', 'loganberry', 'passion fruit']
# create a list of 2-tuples like (number, square)
squares = [(x, x**2) for x in range(6)]
# output [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]
# the tuple must be parenthesized, otherwise an error is raised
# error = [x, x**2 for x in range(6)]
# error = [x, x**2 for x in range(6)]
^
# SyntaxError: invalid syntax
# flatten a list using a listcomp with two 'for'
vec = [[1,2,3], [4,5,6], [7,8,9]]
unpacking_tuple = [num for elem in vec for num in elem]
# output [1, 2, 3, 4, 5, 6, 7, 8, 9]
Example 2: python list comprehension
# 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 ]