lambda是Python中的匿名函數。它語法簡單,簡化代碼,不會產生命名衝突,污染命名空間。Python提供了map,reduce,filter等函數方法,提供了裝飾器,閉包等語法
tuple 元祖,固定長度不可變的順序容器,訪問效率高,是和存儲一些常量數據,能夠做爲字典的鍵使用
list 列表,是長度可變有序的數據存儲容器,。能夠經過下標索引取到相應的數據
dict 字典,長度可變的hash字典容器。存儲的方式爲鍵值對,能夠經過相應的鍵獲取相應的值,key支持多種類型
裝飾器是指對函數執行過程,作一些擴展,甚至能夠更改自己函數的執行
迭代器是指遵循迭代器協議的對象,這類對象在被for循環時,每次迭代生成下一個項,不用一開始就生成整個列表
在python3中 不存在iteritems,items方法返回可迭代對象
在python2中 items()返回[(key,value)]的列表對象,iteritems()返回迭代器對象,iteritems()循環時不能夠增刪dict的內容
unicode編碼:爲了解決各個國家的語言的存儲,引進的unicode碼,包括UCS2,UCS4,UTF-8,UTF-7等 gbk:和unicode不同的編碼方式 ,經常使用的爲 gbk-2312 utf-8: UTF-8 使用 1-4 個字節來存儲單個字符,應該是目前最流行的字符集。Linux 默認字符集就是UTF-8。既解決了大多數語言的編碼方式,又避免了簡單字符存儲對空間的浪費 python 2.x 須要在文件上方聲明文件的編碼方式# -*- coding: utf8 -*-,能夠經過str.decode/str.encode處理字符串的文本編碼 保證 python 編輯器的編碼正確,或使用 u’中文’保證被轉換成 unicode 編碼,推薦使用 sys.setdefaultencoding('utf-8')來保證咱們的編碼
Python GC主要使用 引用計數 來跟蹤和回收垃圾。在引用計數的基礎上,經過「標記-清除」解決容器對象可能產生的循環引用問題。經過分代 以空間換時間的方法提升垃圾回收效率 一、引用計數: 每一個對象中都有ob-refcnt來作引用計數。當一個對象...,ob-refcnt就會增長,當引用的對象刪除,那麼ob-refcnt就會減小當ob-refcnt爲零,就會釋放該對象的內存空間 2、標記清除: 解決循環引用的問題。先按需分配,等到沒有空閒內存的時候,從寄存器和程序棧上的引用出發,遍歷全部對象和引用把全部能訪問的打標記,最後將沒有標記的對象釋放掉 3、分代技術: 提升效率,提升垃圾回收的效率,按照存活時間,分紅不一樣的集合。將內存塊按照其存活時間劃分爲不一樣的集合。每一個集合就稱爲一個「代」,垃圾回收的頻率隨代的存活時間增大而減少。。Python默認定義分代對象集合,引用數越大,對象的存活時間越長 Python也會內存泄露,Python自己的垃圾回收機制沒法回收重寫了__del__的循環引用的對象 程序員管理好每一個python對象的引用,儘可能在不須要使用對象的時候,斷開全部引用 儘可能少經過循環引用組織數據,能夠改用weakref作弱引用或者用id之類的句柄訪問對象 經過gc模塊的接口能夠檢查出每次垃圾回收有哪些對象不能自動處理,再逐個逐個處理
1、使用多進程,充分利用機器的多核性能 二、對於性能影響較大的部分代碼,可使用C或C++編寫 3、對於IO阻塞形成的性能影響,可使用IO多路複用來解決 4、儘可能使用python的內建函數 五、儘可能使用局部變量
def sort_by_age(list1): return sorted(alist,key=lambda x:x['age'],reverse=True)
alist = ['a','b','c','d','e','f'] blist = ['x','y','z','d','e','f'] def merge_list(*args): s = set() for i in args: s = s.union(i) return list(s)
import random random.shuffle(alist)
class Stack: def __init__(self): self.items = [] def __iter__(self): return self.items.__iter__() def pop(self): return self.items.pop() def top(self): if len(self.items) > 0: return self.items[len(self.items) - 1] def push(self, item): self.items.append(item) def empty(self): self.items = [] def size(self): return len(self.items)
import datetime def dayofyear(): year = input("請輸入年份:") month = input("請輸入月份:") day = input("請輸入天:") date1 = datetime.date(year=int(year),month=int(month),day=int(day)) date2 = datetime.date(year=int(year),month=1,day=1) return (date1 -date2).days
str1 = "k:1|k1:2|k2:3|k3:4" def str2dict(str1): dict1 = {} for iterms in str1.split('|'): key,value = iterms.split(':') dict1[key] = value return dict1