建议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)