首页 > 应用开发 > Python > 分享8个Python的高效编程技巧
Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例:
x,y= 10,20 print(x,y) x,y= y,x print(x,y) #1 (10, 20) #2 (20, 0)
赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量 <a> 和 <b>。
一旦赋值完成,新的元组变成了未被引用状态并且被标记为可被垃圾回收,最终也完成了变量的交换。
比较操作符的聚合是另一个有时很方便的技巧:
n= 10 result= 1< n< 20 print(result) # True result= 1> n<= 9 print(result) # False
我们可以使用列表来初始化多个变量,在解析列表时,变量的数目不应该超过列表中的元素个数:【译者注:元素个数与列表长度应该严格相同,不然会报错】
testList= [1,2,3] x,y,z= testList print(x,y,z) #-> 1 2 3
如果你想知道引用到代码中模块的绝对路径,可以使用下面的技巧:
import threading import socket print(threading) print(socket) #1- <module ‘threading’ from ‘/usr/lib/python2.7/threading.py’> #2- <module ‘socket’ from ‘/usr/lib/python2.7/socket.py’>
与我们使用的列表推导相似,我们也可以使用字典/集合推导,它们使用起来简单且有效,下面是一个例子:
testDict= {i: i *iforiinxrange(10)}
testSet= {i *2foriinxrange(10)}
print(testSet)
print(testDict)
#set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
#{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
注:两个语句中只有一个 <:> 的不同,另,在 Python3 中运行上述代码时,将 <xrange> 改为 <range>。
我们可以在 <pdb> 模块的帮助下在 Python 脚本中设置断点,下面是一个例子:
import pdb pdb.set_trace()
我们可以在脚本中任何位置指定 <pdb.set_trace()> 并且在那里设置一个断点,相当简便。
nfc = ["Packers", "49ers"] afc = ["Ravens", "Patriots"] for teama, teamb in zip(nfc, afc): print teama + " vs. " + teamb >>> Packers vs. Ravens >>> 49ers vs. Patriots
items = [0]*3 print items >>> [0,0,0]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70044235/viewspace-3082470/ ,如需转载,请注明出处,否则将追究法律责任。