python编程技巧总结

dacaoxin

Posted by dacaoxin on December 6, 2018

1. python编程技巧总结

  • 交换操作

如果想要交换x, y的值,python中可以直接这样写:

1
    x, y = y, x
  • 善用enumerate()遍历list

写代码时不可避免的要同时用到列表的元素下标和元素值,大多数人的写法是:

1
2
3
a = ['a', 'b', 'c']
for i in range(len(a)):
    print(i, a[i])

而更好的写法是使用内置的enumerate():

1
2
3
a = ['a', 'b', 'c']
for i, val in enumerate(a):
    print(i, val)
  • python中使用dict来替代switch..case

  • 使用if/else

    tmp = x if x > 5 else 0

  • 使用list, set, dict推导式,比如列表推导式的性能比一般的列表操作性能要高,但是最好不要使用列表推导式实现复杂逻辑,会将低代码可读性
  1. list

l = [‘abc’ for _ in range(10)]

l1 = [i for i in range(10) if i % 3]

l1 = [i if i % 3 else 0 for i in range(10)]

  1. set

s = {i for i in range(5)}

  1. dict

mydict = {‘a’ : 1, ‘b’ : 2}

d = {k : v+2 for k, v in mydict.items()}

  • dict作为函数参数时使用技巧
1
2
3
4
    def func(**dictargs):
        # 利用字典的pop方法取出传进来的参数
        name = dictargs.pop('name', 'default_name')
        age = dictargs.pop('age', 10)