In [1]:
%%timeit
#普通方法
result1 = []
for i in range(10000):
if i%2 == 0:
result1.append(i)
In [2]:
%%timeit
#列表推导式方法
result2 = [i for i in range(10000) if i%2 == 0]
In [3]:
str_lst = ['Welcome', 'to', 'Python', 'Data', 'Analysis', 'Course']
result3 = [x.upper() for x in str_lst if len(x) > 4]
print result3
In [4]:
dict1 = {key : value for key, value in enumerate(reversed(range(10)))}
print dict1
In [5]:
set1 = {i for i in range(10)}
print set1
In [6]:
lists = [range(10), range(10, 20)]
print lists
In [7]:
evens = [item for lst in lists for item in lst if item % 2 == 0]
print evens
In [8]:
# 处理字符串
str_lst = ['$1.123', ' $1123.454', '$899.12312']
def remove_space(str):
"""
remove space
"""
str_no_space = str.replace(' ', '')
return str_no_space
def remove_dollar(str):
"""
remove $
"""
if '$' in str:
return str.replace('$', '')
else:
return str
def clean_str_lst(str_lst, operations):
"""
clean string list
"""
result = []
for item in str_lst:
for op in operations:
item = op(item)
result.append(item)
return result
clean_operations = [remove_space, remove_dollar]
result = clean_str_lst(str_lst, clean_operations)
print result
In [9]:
f = lambda x:x**2
f(2)
Out[9]:
In [10]:
str_lst = ['Welcome', 'to', 'Python', 'Data', 'Analysis', 'Course']
str_lst.sort(key=lambda x:len(x)) # sort by length
print str_lst
str_lst.sort(key=lambda x:x[-1]) # sort by the last letter
print str_lst
In [11]:
def gen_test():
for i in range(3):
yield i
gen = gen_test() #此时不执行生成器
type(gen)
Out[11]:
In [12]:
for i in gen: # 直到迭代时才执行
print i
In [ ]: