<代码> 1。交换赋值
# #不推荐
temp=一个
a=b
b=一个
# #推荐
a, b=b, #先生成一个元组(tuple)对象,然后解压缩
2. 拆包
# #不推荐
l=[“大卫”,“python支持者”、“+ 1-514-555-1234”)
first_name=l [0]
last_name=l [1]
phone_number=l [2]
# #推荐
l=[“大卫”,“python支持者”、“+ 1-514-555-1234”)
first_name、last_name phone_number=l
# Python 3只
首先,去年=another_list *中间,
3.使用操作符
# #不推荐
如果水果==捌还被蛩?=俺壬蛩?=敖?
#多次判断
# #推荐
如果水果(“苹果”、“橙”、“浆果”):
#使用在更加简洁
4. 字符串操作
# #不推荐
颜色=(“红”、“蓝”、“绿色”、“黄色”)
结果="
年代的颜色:
结果+=#每次赋值都丢弃以前的字符串对象,生成一个新对象
# #推荐
颜色=(“红”、“蓝”、“绿色”、“黄色”)
结果=" . join(颜色)#没有额外的内存分配
5. 字典键值列表
# #不推荐
关键在my_dict.keys ():
# my_dict(例子)……
# #推荐
在my_dict关键:
# my_dict(例子)……
#只有当循环中需要更改键值的情况下,我们需要使用my_dict.keys ()
#生成静态的键值列表。
6. 字典键值判断
# #不推荐
如果my_dict.has_key(重要):
#……做一些与d(例子)
# #推荐
如果在my_dict关键:
#……做一些与d(例子)
7. 字典得到和setdefault方法
# #不推荐
资产净值={}
(投资、股票、位置)的数据:
如果投资组合净值:
资产净值(资产)=0
资产净值(投资组合)+=*位置价格(股票)
# #推荐
资产净值={}
(投资、股票、位置)的数据:
#使用得到的方法
资产净值(投资组合)资产净值=?组合,0)+位置*价格(股票)
#或者使用setdefault方法
资产净值。setdefault(组合,0)
资产净值(投资组合)+=*位置价格(股票)
8. 判断真伪
# #不推荐
如果x==True:
#……
如果len(项目)!=0:
#……
如果物品!=[]:
#……
# #推荐
如果x:
#……
如果物品:
#……
9. 遍历列表以及索引
# #不推荐
项='一百二十三' .split ()
#方法1
我=0
项目的项目:
我打印,项
我+=1
#方法2
因为我在范围(len(项目):
打印我项目[我]
# #推荐
项='一百二十三' .split ()
对于我,项列举(项目):
我打印,项
10. 列表推导
# #不推荐
new_list=[]
在a_list:项
如果条件(项目):
new_list.append (fn(项目))
# #推荐
new_list=(fn(项)项a_list如果条件(项目))
11. 列表推导——嵌套
# #不推荐
在nested_list sub_list:
如果list_condition (sub_list):
在sub_list:项
如果item_condition(项):
#做某事…
# #推荐
创=(sl的项nested_list如果list_condition (sl) \
项目在sl如果item_condition(项目))
创的项目:
#做某事…
12. 循环嵌套
# #不推荐
在x_list x:
在y_list y:
在z_list z:
#做x, amp;y
# #推荐
出现从itertools进口产品
在产品(x, y, z x_list、y_list z_list):
#做x, y, z
13. 尽量使用生成器代替列表
# #不推荐
def my_range (n):
我=0
结果=[]
当我和lt;护士:
result.append (fn (i))
我+=1
返回结果#返回列表
# #推荐
def my_range (n):
我=0
结果=[]
当我和lt;护士:
收益率fn (i) #使用生成器代替列表
我+=1
*尽量用生成器代替列表,除非必须用到列表特有的函数。
14. 中间结果尽量使用imap/ifilter代替map/过滤器
# #不推荐
减少(射频滤波器(ff,地图(mf a_list)))
# #推荐
出现从itertools进口ifilter, imap
减少(rf ifilter (ff、imap (mf a_list)))
*懒惰的评价会带来更高的内存使用效率,特别是当处理大数据操作的时候。
15. 使用任何/所有函数
# #不推荐
发现=False
在a_list:项
如果条件(项目):
发现=True
打破
如果发现:
#做一些如果发现……
# #推荐
如果任何(a_list条件(项目)项目):
#做一些如果发现……
16. 属性(财产)
=
# #不推荐
类时钟(对象):
def __init__(自我):
自我。__hour=1
def setHour(自我,小时):
如果25,gt;小时,gt;0:自我。__hour=小时
其他:提高BadHourException
def getHour(自我):
返回self.__hour
# #推荐
类时钟(对象):
def __init__(自我):
自我。__hour=1
def __setHour(自我,小时):
如果25,gt;小时,gt;0:自我。__hour=小时
其他:提高BadHourException
def __getHour(自我):
返回self.__hour
小时=属性(__getHour __setHour)
17. 使用的处理文件打开
# #不推荐
开放(f=皊ome_file.txt”)
试一试:
data=https://www.yisu.com/zixun/f.read ()
#其他文件操作. .
最后:
f.close ()
# #推荐
张开f (“some_file.txt”):
data=https://www.yisu.com/zixun/f.read ()
#其他文件操作…
18. 使用,忽视异常(仅限Python 3)
# #不推荐
试一试:
os.remove (“somefile.txt”)
除了OSError:
通过
# #推荐
从contextlib进口忽略# Python 3只
与忽略(OSError):
os.remove (“somefile.txt”)
19. 使用的处理加锁
# #不推荐
进口线程
锁=threading.Lock ()
lock.acquire ()
试一试:
#互斥操作…
最后:
lock.release ()
# #推荐
进口线程
锁=threading.Lock ()
锁:
#互斥操作…