Python语法点滴
格式化字符串转换成字典问题: “a=1,b=2,c=3” 解答: s = 'a=1,b=2,c=3' http://www.360doc.com/content/15/0331/11/5711743_459502912.shtml |
string: string.capitalize() 把字符串的第一个字符大写 string.startswith(obj) string.endswith(obj) string.find(str, beg=0, end=len(string)) 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 string.index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在 string中会报一个异常. string.join(seq) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 string.lower() string.upper() string.strip([obj]) string.split(str="", num=string.count(str)) 以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串 string.title() 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
List 函数: len() max() min() list(seq) 方法: list.append(obj) list.extend(seq) list.count(obj) list.index(obj) list.insert(index, obj) list.pop(obj=list[-1]) list.remove(obj) list.reverse() == list[::-1] Tuple只有对应的函数,最后一个为tuple(seq) |
字典 radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值 radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里 del adict[key] |
set set.add(key) set.remove(key) set1 & set2 set1 | set2 |
函数
原因解释如下: Python函数在定义的时候,默认参数 所以,定义默认参数要牢记一点:默认参数必须指向不变对象! 可变参数:在函数内部,参数
所以,对于任意函数,都可以通过类似func(*args, **kw) 的形式调用它,无论它的参数是如何定义的。 |
enumerate
In [15]: range(4) |
map reduce filter
reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
filter() 把传入的函数依次作用于每个元素,然后根据返回值是True 还是False 决定保留还是丢弃该元素
|
排序sorted(iterable, cmp=None, key=None, reverse=False)
>>>L = [('b',2),('a',1),('c',3),('d',4)] >>>print sorted(L, key=lambda x:x[1])) 排过序后再用第一个关键字进行排序呢? >>> L = [('d',2),('a',4),('b',3),('c',2)] >>> print sorted(L, key=lambda x:(x[1],x[0])) >>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)] 字典排序按value排序 sorted(dict.items(), lambda x, y: cmp(x[1], y[1])) #降序 sorted(dict.items(), lambda x, y: cmp(x[1], y[1]), reverse=True) |
获取对象信息
isinstance()
|
collectionshttps://docs.python.org/2/library/collections.html namedtuple
OrderedDict
Counter
|
多进程 import signalfrom multiprocessing import cpu_count, PoolCPU_COUNT = cpu_count()def init_worker():
多线程
import Queue
|
logging import logging.handlerslog = logging.getLogger() formatter = logging.Formatter("%(asctime)s [%(name)s] %(levelname)s: %(message)s") fh = logging.handlers.WatchedFileHandler(os.path.join(root_dir, 'pe_analyzer.log')) fh.setFormatter(formatter) log.addHandler(fh) ch = logging.StreamHandler() ch.setFormatter(formatter) log.addHandler(ch) log.setLevel(logging.INFO) log.info('imp_x.shape: %s, ops_x.shape: %s, imp_y.shape: %s' % (imp_x.shape, ops_x.shape, imp_y.shape)) log.info('train_label.shape: %s', train_label.shape) |
二维数组拉平成一维数组 |