目录
查看函数运行效率
以下代码会打印出abc函数里调用了几次其它函数, 各用了多少时间, 总共用了多少时间等信息:
# -*- coding: utf-8 -*-
import profile
def abc():
for i in range(50):
print("i: %s" % str(i))
profile.run('abc()')
当然,如果只想知道函数运行时间,也可以采用以下方法:
# -*- coding: utf-8 -*-
import time
def abc():
start = time.time()
for i in range(50):
print("i: %s" % str(i))
end = time.time()
print("time: %0.3f" % (end - start))
abc()
更多详细用法可参考profile的官方说明。
判断字典中键是否存在
以下代码可以判断一个键是否在字典中存在:
# -*- coding: utf-8 -*-
abc = {'a': 'a', 'b': 'b'}
def is_key_exist(key):
if abc.get(key, None): # 关键代码
print(key + ' is exist')
else:
print(key + ' is not exist')
is_key_exist('b')
元素互换
以下代码可以把a, b的值互换
# -*- coding: utf-8 -*-
a = 3
b = 5
a, b = b, a
初始化列表
在定义列表时进行初始化:
# -*- coding: utf-8 -*-
arr = ['a'] * 5
print(arr) # arr = ['a', 'a', 'a', 'a', 'a']
三元操作符进行条件赋值
# -*- coding: utf-8 -*-
y = 2
x = 10 if y == 1 else 20
print(x) # x = 20
多行字符串
将字符串分为多行并且将整个字符串包含在括号中:
# -*- coding: utf-8 -*-
x = ("select"
" * "
"form"
" abc")
print(x) # select * form abc
存储列表元素到单个变量中
# -*- coding: utf-8 -*-
lst = ['a', 'b', 'c']
x, y, z = lst # x=a y=b z=c
用代码设置断点
使用pdb 模块可以直接在脚本中设置断点:
# -*- coding: utf-8 -*-
import pdb
lst = ['a', 'b', 'c']
x, y, z = lst # x=a y=b z=c
pdb.set_trace() # 代码运行后,执行会在此中断。在控制代码输入'c'后,继续执行。
print(x)
FizzBuzz问题
需求:打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
for x in range(1, 101):
print("fizz"[x % 3 * len('fizz')::] + "buzz"[x % 5 * len('buzz')::] or x)
同时迭代多个列表
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
# -*- coding: utf-8 -*-
a = [1, 2, 3]
b = [4, 5, 6]
for i, j in zip(a, b):
print(i + j) # 5, 7, 9
列表转换为字符串
# -*- coding: utf-8 -*-
lst = ['a', 'b', 'c']
print('+'.join(lst)) # a+b+c
迭代分组
需求:有4名选手,分成两两一组进行比赛,有几种分法?代码如下:
# -*- coding: utf-8 -*-
from itertools import combinations
teams = ["player1", "player2", "player3", "player4"]
for game in combinations(teams, 2):
print(game)
# ('player1', 'player2')
# ('player1', 'player3')
# ('player1', 'player4')
# ('player2', 'player3')
# ('player2', 'player4')
# ('player3', 'player4')
更多用法,请查看itertools库官方说明。
更多技巧。。。
以后遇到好的技巧,会不断的往该文章中更新,有需要的朋友可以收藏起来!