This file contains 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
# On my Windows 7 64-bit machine running CPython 2.6 | |
C:\>python -m timeit -s "lst = [1] * 100" "out = [x for x in lst if x]" | |
100000 loops, best of 3: 6.55 usec per loop | |
C:\>python -m timeit -s "lst = [1] * 100" "out = []" "for x in lst:" " if x:" " out.append(x)" | |
100000 loops, best of 3: 14.7 usec per loop |
This file contains 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
"""Simple bouncing ball demo.""" | |
import sys | |
import pygame | |
pygame.init() | |
size = (1024, 768) | |
speed = [1, 1] |
This file contains 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
"""Speed up os.walk() significantly by using file attributes that | |
FindFirst/Next give us instead of doing an extra stat(). Can also do the same | |
thing with opendir/readdir on Linux. | |
This is doubly useful when the user (caller of os.walk) is doing *another* | |
stat() to get say the file sizes. | |
On my tests (Windows 64-bit) our walk() is about 5x as fast as os.walk() for | |
large directory trees, and 9x as fast if you're doing the file size thing. | |
Note that these timings are "once it's in the cache", not first-time timings. |
This file contains 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
"""Print most frequent N-grams in given file. | |
Usage: python ngrams.py filename | |
Problem description: Build a tool which receives a corpus of text, | |
analyses it and reports the top 10 most frequent bigrams, trigrams, | |
four-grams (i.e. most frequently occurring two, three and four word | |
consecutive combinations). | |
NOTES |
This file contains 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
"""Function to generate a random string (key) of length chars.""" | |
import binascii | |
import os | |
def generate_key(length=40, get_bytes=os.urandom): | |
"""Return a randomly-generated key of length chars. | |
>>> len(generate_key()) |
This file contains 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
"""An atomic, thread-safe incrementing counter.""" | |
import threading | |
class AtomicCounter: | |
"""An atomic, thread-safe incrementing counter. | |
>>> counter = AtomicCounter() | |
>>> counter.increment() |
This file contains 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
"""Calculate the probability of generating a duplicate random number after | |
generating "n" random numbers in the range "d". | |
Usage: python birthday_probability.py n [d=365] | |
Each value can either be an integer directly, or in the format "2**x", where | |
x is the number of bits in the value. | |
For example, to calculate the probability that two people will have the same | |
birthday in a room with 23 people: |
This file contains 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
"""Calculate the average number of moves in a snakes and ladders game. | |
Because as a parent one gets roped into these board (boring?) games | |
every so often, and I wanted to calculate the average duration of a | |
snakes and ladders game. Turns out it's about 36 moves (though | |
admittedly that's for a single-player game). :-) | |
> python snakes_and_ladders.py | |
Played 10000 rounds, averaged 36.0559 moves, max 324 moves, took 0.508s | |
""" |
This file contains 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
"""Test how many threads we can run at once.""" | |
import itertools | |
import threading | |
import time | |
import sys | |
import requests | |
This file contains 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
"""Efficient sliding-window sorting of time-series data in CSV file. | |
Demo for http://stackoverflow.com/a/42398981/68707 | |
Tested on Python 3.5. | |
""" | |
import collections | |
import csv | |
import datetime |
OlderNewer