建議36:掌握字符串的基本用法
1 python2中判斷一個變量s是不是祖父穿應(yīng)該使用 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 排序?qū)ο蠖紴榱斜頃r,sorted() 不改變原列表,返回一個新的列表,sort()直接修改原列表返回None
建議38:使用copy模塊深拷貝對象
copy.deepcopy()
建議39:使用counter進(jìn)行計數(shù)統(tǒng)計
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屬于字典的子類,是一個容器對象,主要用來統(tǒng)計三列對象,支持集合操作+、-、&、|,
其中&、| 分別返回兩個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個出現(xiàn)頻率最高的元素以及他們對應(yīng)的次數(shù)
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都會轉(zhuǎn)換成True、False
conf = configParser.ConfigParser()
conf.read('example.conf')
print(conf.get('session1', 'option1')) # 0
print(conf.getboolean('session1', 'option1')) # False
建議41:使用argparse處理命令行參數(shù)
import argparse
parser = argparse.ArgumentParser()
parser.description='喂我兩個數(shù)字,我就吐出他們的積'
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)