Weitere ähnliche Inhalte
Ähnlich wie Python: with-statement, generators
Ähnlich wie Python: with-statement, generators (20)
Kürzlich hochgeladen (20)
Python: with-statement, generators
- 4. class tmpTable(object):
!
def __init__(self, hive, create_query):
self.hive = hive
self.create_query = create_query
self.table_name = self._get_tmp_table_name()
!
def __enter__(self):
query = self.create_query % self.table_name
self.hive.run_query(self.create_query)
return self.table_name
!
def __exit__(self, type, value, traceback):
self.hive.drop(self.table_name)
!
!
!
!
with tmpTable(hive, create_query) as table_name:
# do something
- 8. class xrange(object):
!
def __init__(self, start, stop):
self.start = start
self.stop = stop
!
def __iter__(self):
return self
!
def next(self):
if self.start > self.stop:
raise StopIteration
self.start += 1
return self.start
- 10. squares = (x * x for x in xrange(0, 100))
!
for square in squares:
print square
- 12. squares = (x * x for x in itertools.count(1))
!
for square in squares:
print square
- 13. def parse_event(line):
timestamp, user, eventtype = line.split()
return timestamp, eventtype
!
!
counts = collections.defaultdict(
lambda: collections.defaultdict(int))
!
with open(filename) as file:
events = itertools.imap(parse, file)
for timestamp, eventtype in events:
hour = to_hour(timestamp)
counts[eventtype][hour] += 1
histogram
- 14. def parse_event(line):
timestamp, user, eventtype = line.split()
return timestamp, eventtype
!
!
with open(filename) as file:
events = itertools.imap(parse, file)
earliest_100 = heapq.nsmallest(parsed_lines, 100)
print earliest_100
subset
- 15. def parse_event(line):
timestamp, user, eventtype = line.split()
return timestamp, eventtype
!
def add_random_key(elem):
return random.random(), elem
!
with open(filename) as file:
events = itertools.imap(parse, file)
with_random_keys = (add_random_key(elem) for elem in parsed_lines)
sample_with_keys = heapq.nlargest(100, sample_size,
with_random_keys)
!
sample
- 16. with open(filename) as file:
events = itertools.imap(parse, file)
earliest_100 = heapq.nsmallest(parsed_lines, 100)
print earliest_100
!
largest_100 = heapq.nlargest(parsed_lines, 100)
print largest_100
common pitfalls
- 17. with open(filename) as file:
events = itertools.imap(parse, file)
earliest_100 = heapq.nsmallest(parsed_lines, 100)
print earliest_100
!
!
with open(filename) as file:
events = itertools.imap(parse, file)
!
largest_100 = heapq.nlargest(parsed_lines, 100)
print largest_100
common pitfalls