Make the script both a module and an executable :
if __name__ == '__main__'
The __whatever__ is a "dunder" - double-underscore. There are some useful ones you'll pick up - like __init__ , __repr__ , __eq__ (that goes along with decorators), etc.
Enumerate :
for i, var in enumerate( list_name ) :
some_useful_code using i and var
List comprehension (build a list on the fly ) :
[ x * 3 for x in data if x > 10 ]
Build a dict out of two lists :
d = dict( zip( key_list, val_list ) )
Flatten a list of lists :
>>> l_of_lists = [list(range(10)), list(range(20,30)), list(range(50,60))]
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [50, 51, 52, 53, 54, 55, 56, 57, 58, 59]]
>>> l = [y for x in l_of_lists for y in x]
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
Count number of elements in your list greater than a certain value :
sum(i > 5 for i in j)
Reverse a list :
list_name[::-1]
Parse JSON data :
import json
import requests
response = requests.get( url, params=paramDict)
parsed_json = response.json() # then do a pprint (pretty print) to see how to use..
Pandas :
import pandas as pd
df = pd.read_csv( 'somefile.csv')
matching_list = df['field1'][df['fieldN' == 'something_specific']
import matplotlib.pyplot as plt
from matplotlib import style
style.use('classic')
df['some field'].plot()
plt.show()
To convert from JSON to dataframe :
from pandas.io.json import json_normalize
df = json_normalize( parsed_json['key name'] )
Fill out a matrix using a list or dict ( while you count from 0 to 8 generate (0,0),(0,1),(0,2),(1,0)..(2,2) )
from itertools import product
i=0
for t1, t2 in product( sorted_tags, sorted_tags ) :
row = i // num_tags
col = i % num_tags
i += 1
t_mx[row][col] = transition_counts[ (t1,t2) ]
Actually, more pythonically (maybe) :
from itertools import product
for i,j in product( range( num_tags), range(num_tags) ) :
t_mx[i,j] = transition_counts[ (sorted_tags[i], sorted_tags[j] ) ]
QEI
http://safehammad.com/downloads/python-idioms-2014-01-16.pdf
https://coderwall.com/p/rcmaea/flatten-a-list-of-lists-in-one-line-in-python
No comments:
Post a Comment