基本风格类

1. 多重赋值和多元赋值

多重赋值:x = y = z = 1
多元赋值:x, y, z = 1, 2, 'str'

2. Python命名中要避免关键字

查询命名是否是关键字的方法:iskeyword()

Python对象

1. None对象

Python有一个特殊的类型,被称为NoneType,它不支持任何运算也没有任何内建的方法。None没有什么有用的属性,而且它的布尔值总是False。

2. Python提供了isis not两个操作符来测试两个变量是否指向同一个对象

a is b

3. 使用isinstance()函数可以让我们的if语句更方便,并且具有更好的可读性

if isinstance(num, int)...

字符串、列表和元组

1.使用in或者not in来判断一个元素是否属于一个序列

2.需要连接两个类型相同序列的时候,尽量不使用’+’

为了节约内存:
+ 对于字符串来说,吧所有的子字符串放到一个列表或者其他任何可以迭代的对象中,然后使用join()函数把他们连接在一起
+ 对于列表的连接来说,可以调用extend()

3.enumerate(iter)方法
接受一个可迭代的对象作为参数,返回一个由参数的index值和item值组成的元组

s= enumerate('1234')
for index,item in s:
    print(index,',',item)

4.任何一个可迭代的对象中包含的元素,都可以通过赋值的方法分解为单独的变量

p = [1,2,3]
x,y,z = p

5.找到最大或者最小的N个元素,可以使用:

import headq
headq.nlargest(N,data)
headq.nsmallest(N,data)

6.slice()函数创建切片对象

slice对象内含start, stop, step三个属性

7.Counter对列表内元素出现次数计数

from collections import Counter
Counter.most_common(N) # 最常出现的N个元素及其出现次数
Counter(list) # 对列表计数

Counter可以同各种运算操作结合起来使用,例如可以将两个列表的元素联合计数。

8.使用列表推导式对列表中的数据进行筛选

filter = n for n in myList if n > 0

9.使用filter()函数对目标进行筛选,但是首先要将筛选逻辑编写成函数func()形式

filter = filter(func, values)

字典

1.使用for key in dict来直接访问字典的键值循环

不需要再使用for key in dict.keys()

2.使用OrderedDict控制字典中元素的顺序

from collections import OrderedDict
在迭代时,字典中元素的顺序会严格按照元素添加的顺序进行

3.使用zip()可以将字典的key和value反转

zip(dict.values(),dict.keys())

4.如果想对字典的值进行计算,先用zip反转,再用其他函数计算

5.用keys()或者items()配合运算符比较字典,包括找出相同值,不同值等等

6.用itemgetter对字典中某一个或某几个键排序

from operator import itemgetter
sort_by_key1 = sorted(rows, key=itemgetter(key1)

也可以用lambda来取代itemgetter()

7.itertools.groupby()来对数据进行分组

from itertools import groupby

8.利用字典推导式从字典中提取子集

sub_dict = {key: value for key, value in dict.items() if value > 1}
sub_dict = {key: value for key, value in dict.items() if key in some_list}

9.ChainMap合并字典

from collections import ChainMap
dict1 = ChainMap(dict2, dict3)

条件和循环

1. 条件表达式可以表示成= x if x < y else y

2. 在不需要做任何事情的地方放一个pass