第四章 库

建议36:掌握字符串的基本用法

1 python2中判断一个变量s是不是祖父穿应该使用 isinstance(s, basestring)
2 basestring 是 str 和unicode的基类
3 replace(old, new [,count]) 指定count,则替换count次,不指定则全部替换
4 s.split() 去掉s两端的空格,然后以任意空格分隔字符串s

建议37:按需选择sort()或者sorted()

1 sorted() 用于任意可迭代的对象;sort()一般作用于列表
2 排序对象都为列表时,sorted() 不改变原列表,返回一个新的列表,sort()直接修改原列表返回None

建议38:使用copy模块深拷贝对象

copy.deepcopy()

建议39:使用counter进行计数统计
from collections import Counter

some_data = ['a', 'b', 'c', 'd', 'd', 'd' '8', '8', '6']
print(Counter(some_data))
# Counter({'d': 2, 'a': 1, 'b': 1, 'c': 1, 'd8': 1, '8': 1, '6': 1})

Counter属于字典的子类,是一个容器对象,主要用来统计三列对象,支持集合操作+、-、&、|,
其中&、| 分别返回两个Counter对象各元素的最小值和最大值

# 3种不同初始化方式
Counter("success")
Counter(s=3, c=2, e=1, u=1)
Counter({'s':3, 'c':2, 'u':1, 'e':1})
# 使用elements()方法来获取Counter中的key值
list(Counter("success").elements())
# ['s', 's', 's', 'u', 'c', 'c', 'e']
# most_common()方法可以找出前N个出现频率最高的元素以及他们对应的次数
Counter("success").most_common(2)
# [('s', 3), ('c', 2)]
Counter("success")['s']    # 3
Counter("success")['y']    # 0, 元素不存在返回0,不是抛出KeyError异常
a = Counter("success")      # Counter({'s': 3, 'c': 2, 'u': 1, 'e': 1})
a.update("successfully")    # Counter({'s': 6, 'c': 4, 'u': 3, 'e': 2, 'l': 2, 'f': 1, 'y': 1})
a.subtract("successfully")  # Counter({'s': 3, 'c': 2, 'u': 1, 'e': 1, 'f': 0, 'l': 0, 'y': 0})
a.subtract("successfully")  # Counter({'s': 0, 'c': 0, 'e': 0, 'u': -1, 'f': -1, 'y': -1, 'l': -2})

建议40:深入掌握ConfigParser

# example.conf
[session1]
option1 = 0
import configParser

# getboolean() true/false on/off yes/no 0/1都会转换成True、False
conf = configParser.ConfigParser()
conf.read('example.conf')
print(conf.get('session1', 'option1'))           # 0
print(conf.getboolean('session1', 'option1'))    # False
建议41:使用argparse处理命令行参数
import argparse


parser = argparse.ArgumentParser()
parser.description='喂我两个数字,我就吐出他们的积'
parser.epilog = "哈哈哈"
parser.usage = "python test.py -a digit -b digit"

parser.add_argument("-a", "--ParA", help="我是A",type=int)
parser.add_argument("-b", "--ParB", help="我是B",type=int)

args = parser.parse_args()


if args.ParA:
    print("我只吃到了A,它是",args.ParA)
if args.ParB:
    print("我只吃到了B,它是",args.ParB)
if args.ParA and args.ParB:
    print("啊,两个都吃到啦!积是",args.ParA*args.ParB)
建议42:使用pandas处理大型csv文件

你可能感兴趣的:(第四章 库)