Python高效编程的习惯(建议)

  • 使用join()连接字符串.
  • 尽量使用局部变量
  • 为无限循环使用 "while 1"
  • 检查一个元素是在dicitonary或set是否存在 这在Python中非常快的。这是因为dict和set使用哈希表来实现。查找效率可以达到O(1)。循环之外能做的事不要放在循环内,比如下面的优化可以快一倍
  • 对于and,应该把满足条件少的放在前面,对于or,把满足条件多的放在前面。
  • 使用if is

    a = range(10000)

    %timeit -n 100 [i for i in a if i == True]

    %timeit -n 100 [i for i in a if i is True]

    100 loops, best of 3: 531 µs per loop

    100 loops, best of 3: 362 µs per loop

  • 使用级联比较x < y < z
  • while 1 比 while True 更快(10倍)
  • 一个for语句中迭代多个可迭代对象
    x=['a','b','c']
  • y=['1','2','3','4']

    #并行迭代

    for a,b in zip(x,y):

      print(a,b)

  • 初始化一个由许多重复值组成的数组
    print([0]*10)
  • 颠倒字符串
    print(name[::-1])
  • 列表推导式
    a=[1,2,3]
  • b=[num*2 for num in a]

  • 优先级关系:or<and<not
  • 对字典进行迭代
    a={'s':1,'d':2,'c':3}
  • for i,j in a.items():

    print('{key}:{value}'.format(key=i,value=j))

  • 初始化空的容器
    a_list=list()
  • print(a_list)

  • 对数组内元素值和索引同时进行迭代
    a=['a','c','d']
  • for i,j in enumerate(a):

    print(i,j)

  • 简化if语句
    if m in [1, 2, 3, 4]:
  • # do not use following way

    if m==1 or m==2 or m==3 or m==4:

  • # 翻转字符串
    print("Test Python"[::-1])
  • # 用切片翻转列表
    print([1, 3, 5][::-1])  
  • [random.randint(1, 6) for _ in range(3)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值