Created
August 6, 2016 18:00
-
-
Save mjgpy3/5d48ec4a93c96d1732df71b047191fce to your computer and use it in GitHub Desktop.
Selecting columns
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
foo.py select-column.py X | |
values = [ | |
[1, 10, 20, 30, 40], | |
[2, 10, 21, 31, 41], | |
[3, 11, 22, 32, 42], | |
[4, 10, 23, 33, 43], | |
] | |
def matches_10(row): | |
return row[1] == 10 | |
matches_10 = lambda row: row[1] == 10 | |
def index_is(idx, value): | |
return lambda row: row[idx] == value | |
filtered = filter(lambda row: row[1] == 10, values) | |
def my_filter(predicate, values): | |
results = [] | |
for value in values: | |
if predicate(value): | |
results.append(value) | |
return results | |
filtered2 = [row for row in values if row[1] == 10] | |
print filtered2 | |
print filter(index_is(1, 10), values) | |
# How we get to things like index_is | |
# 1 | |
def specific(values): | |
results = [] | |
for row in values: | |
if row[1] == 10: | |
results.append(row) | |
return results | |
# 2 - Generic on predicated | |
def my_filter_2(predicate, values): | |
results = [] | |
for row in values: | |
if predicate(row): | |
results.append(row) | |
return results | |
def matches_10(row): | |
return row[1] == 10 | |
specific = my_filter_2(matches_10, values) | |
# 3 - generic on matches_10 | |
def build_predicate_equals_at(idx, value): | |
return lambda row: row[idx] == value | |
class Person: | |
get_name = lambda self: 'Danny' | |
dan = Person() | |
print dan.get_name() | |
print Person.get_name(Person()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment