case

001

#交換兩個變量值    
a,b = b,a    
    
#去掉list中的重復(fù)元素    
old_list = [1,1,1,3,4]    
new_list = list(set(old_list))    
    
#翻轉(zhuǎn)一個字符串    
s = 'abcde'    
ss = s[::-1]    

#用兩個元素之間有對應(yīng)關(guān)系的list構(gòu)造一個dict    
names = ['jianpx', 'yue']    
ages = [23, 40]    
m = dict(zip(names,ages))    
    
#將數(shù)量較多的字符串相連亿柑,如何效率較高糕篇,為什么    
fruits = ['apple', 'banana']    
result = ''.join(fruits)    
    
#python字符串效率問題之一就是在連接字符串的時候使用‘+’號涨缚,
例如 s = ‘s1’ + ‘s2’ + ‘s3’ + ...+’sN’熬尺,總共將N個字符
串連接起來淮阐, 但是使用+號的話仑嗅,python需要申請N-1次內(nèi)存空間躺苦, 
然后進行字符串拷貝源葫。原因是字符串對象PyStringObject在python
當(dāng)中是不可變 對象,所以每當(dāng)需要合并兩個字符串的時候哈恰,就要重新  
請一個新的內(nèi)存空間 (大小為兩個字符串長度之和)來給這個合并之后  
的新字符串只估,然后進行拷貝志群。 所以用+號效率非常低着绷。建議在連接字符串  
的時候使用字符串本身的方法 join(list),這個方法能提高效率锌云,原
因是它只是申請了一次內(nèi)存空間荠医, 因為它可以遍歷list中的元素計算出
總共需要申請的內(nèi)存空間的大小,一次申請完桑涎。

002

>>> D = {'a':1,'b':2,'c':3,'d':4}    
>>> D.items()                       #一次性取出所有    
[('a', 1), ('c', 3), ('b', 2), ('d', 4)]    
>>> D.iteritems()                   #迭代對象彬向,每次取出一個。用for循環(huán)遍歷出來攻冷;    
<dictionary-itemiterator object at 0x00000000026243B8>    
>>> for i in D.iteritems():    
...   print i,    
...    
('a', 1) ('c', 3) ('b', 2) ('d', 4)    
>>> for k,v in D.iteritems():    
...   print k,    
...    
a c b d    
總結(jié):   
1. 一般iteritems()迭代的辦法比items()要快娃胆,特別是數(shù)據(jù)庫比較大時。  
2. 在Python3中一般取消前者函數(shù) 

003

這是代碼結(jié)構(gòu)設(shè)計的問題等曼,模塊依賴和類依賴  
如果老是覺得碰到循環(huán)引用里烦,很可能是模塊的分界線劃錯地方了〗可能是把應(yīng)該在一起的東西硬拆開了胁黑,可能是某些職責(zé)放錯地方了,可能是應(yīng)該抽象的東西沒抽象  
總之微觀代碼規(guī)范可能并不能幫到太多州泊,重要的是更宏觀的劃分模塊的經(jīng)驗技巧丧蘸,推薦uml,腦圖遥皂,白板等等圖形化的工具先梳理清楚整個系統(tǒng)的總體結(jié)構(gòu)和職責(zé)分工  
  
采取辦法力喷,從設(shè)計模式上來規(guī)避這個問題刽漂,比如:  
1. 使用 “__all__” 白名單開放接口  
2. 盡量避免 import  

004

#python 類型轉(zhuǎn)換
函數(shù)                             描述  
int(x [,base])              將x轉(zhuǎn)換為一個整數(shù)  
long(x [,base] )            將x轉(zhuǎn)換為一個長整數(shù)  
float(x)                    將x轉(zhuǎn)換到一個浮點數(shù)  
complex(real [,imag])       創(chuàng)建一個復(fù)數(shù)  
str(x)                      將對象 x 轉(zhuǎn)換為字符串  
repr(x)                     將對象 x 轉(zhuǎn)換為表達式字符串  
eval(str)                   用來計算在字符串中的有效Python表達式,并返回一個對象  
tuple(s)                    將序列 s 轉(zhuǎn)換為一個元組  
list(s)                     將序列 s 轉(zhuǎn)換為一個列表  
set(s)                      轉(zhuǎn)換為可變集合  
dict(d)                     創(chuàng)建一個字典。d 必須是一個序列 (key,value)元組弟孟。  
frozenset(s)                轉(zhuǎn)換為不可變集合  
chr(x)                      將一個整數(shù)轉(zhuǎn)換為一個字符  
unichr(x)                   將一個整數(shù)轉(zhuǎn)換為Unicode字符  
ord(x)                      將一個字符轉(zhuǎn)換為它的整數(shù)值  
hex(x)                      將一個整數(shù)轉(zhuǎn)換為一個十六進制字符串  
oct(x)                      將一個整數(shù)轉(zhuǎn)換為一個八進制字符串 

#list和tuple如何轉(zhuǎn)換
#兩者可以直接相互轉(zhuǎn)換
t = (1,2,3)
tt = list(t)
tt = tuple(tt)

005編碼問題

#先來看個小例子:
print(u'中文')
print('中文')

2
6


006

#Python判斷當(dāng)前用戶是否是root
import os  
if os.getuid() != 0:    # root賬號的uid=0  
    print os.getuid()  
    print 'Should run as root account'  
else:  
    print 'Hello, Root!'  

#

007默寫盡可能多的str對象的方法

#方法                                   #描述    
-------------------------------------------------------------------------------------------------    
S.capitalize()                          #返回首字母大寫的字符串的副本    
S.center(width[,fillchar])              #返回一個長度為max(len(S),width),S居中爽冕,兩側(cè)fillchar填充    
S.count(sub[,start[,end]])              #計算子字符串sub的出現(xiàn)次數(shù),可將搜索范圍限制為S[start:end]    
S.decode([encoding[,error]])            #返回使用給定編碼方式的字符串的解碼版本披蕉,由error指定錯誤處理方式    
S.endswith(suffix[start[,end]])         #檢查S是否以suffix結(jié)尾颈畸,可給定[start:end]來選擇匹配的范圍    
S.expandtabs([tabsize])                 #返回字符串的副本,其中tab字符會使用空格進行擴展没讲,可選擇tabsize    
S.find(sun[,start[,end]])               #返回子字符串sub的第一個索引眯娱,不存在則為-1,可選擇搜索范圍    
S.index(sub[,start[,end]])              #返回子字符串sub的第一個索引,不存在則引發(fā)ValueError異常.    
S.isalnum()                             #檢查字符串是否由字母或數(shù)字字符組成    
S.isalpha()                             #檢查字符串是否由字母字符組成    
S.isdigit()                             #檢查字符串是否由數(shù)字字符組成    
S.islower()                             #檢查字符串是否由小寫字母組成    
S.isspace()                             #檢查字符串是否由空格組成    
S.istitle()                             #檢查字符串時候首字母大寫    
S.isupper()                             #檢查字符串是否由大寫字母組成    
S.join(sequence)                        #返回其中sequence的字符串元素由S連接的字符串    
S.ljust(width[,fillchar])               #返回S副本左對齊的字符串,長度max(len(S),W),右側(cè)fillchar填充    
S.lower()                               #返回所有字符串都為小寫的副本    
S.lstrip([char])                        #向左移除所有char爬凑,默認移除(空格,tab,\n)    
S.partition(seq)                        #在字符串中搜索seq并返回    
S.replace(old,new[,max])                #將new替換olad,最多可替換max次    
S.rfind(sub[,start[,end]])              #返回sub所在的最后一個索引徙缴,不存在則為-1,可定搜索范圍S[start:end]    
S.rindex(sub[,start[,end]])             #返回sub所在的最后一個索引,不存在則會引發(fā)ValueError異常嘁信。    
S.rjust(width[,fillchar])               #返回S副本右對齊的字符串,長度max(len(S),W),左側(cè)fillchar填充    
S.rpartition(seq)                       #同Partition,但從右側(cè)開始查找    
S.rstip([char])                         #向右移除所有char于样,默認移除(空格,tab,\n)    
S.rsplit(sep[,maxsplit])                #同split,但是使用maxsplit時是從右往左進行計數(shù)    
S.split(sep[,maxsplit])                 #使用sep做為分割符,可使用maxsplit指定最大切分數(shù)    
S.zfill(width)                          #在S的左側(cè)以0填充width個字符    
S.upper()                               #返回S的副本,所有字符大寫    
S.splitlines([keepends])                #返回S中所有行的列表潘靖,可選擇是否包括換行符    
S.startswith(prefix[,start[,end]])      #檢查S是否以prefix開始穿剖,可用[start,end]來定義范圍    
S.strip([chars])                        #移除所有字符串中含chars的字符,默認移除(空格卦溢,tab,\n)    
S.swapcase()                            #返回S的副本糊余,所有大小寫交換    
S.title()                               #返回S的副本,所有單詞以大寫字母開頭    
S.translate(table[,deletechars])        #返回S的副本单寂,所有字符都使用table進行的轉(zhuǎn)換贬芥,可選擇刪除出現(xiàn)在deletechars中的所有字符 

008

# 現(xiàn)在有一個dict對象adict,里面包含了一百萬個元素,查找其中的某個元素的平均需要多少次比較
O(1)  哈希字典,快速查找宣决,鍵值映射蘸劈,鍵唯一! 

#有一個list對象alist,里面的所有元素都是字符串尊沸,編寫一個函數(shù)對它實現(xiàn)一個大小寫無關(guān)的排序
words = ['This','is','a','dog','!']  
words.sort(key=lambda x:x.lower())  
print words  

#打亂一個排好序的list對象alist
# random模塊中的shuffle(洗牌函數(shù))  
import random  
alist = [1, 2, 3, 4]  
random.shuffle(alist)     
print alist  

# 有一個長度是101的數(shù)組威沫,存在1~100的數(shù)字,有一個是重復(fù)的椒丧,拿重復(fù)的找出來
# Python中壹甥,主要是拿count(i) ==2的找出來即可,再利用列表推導(dǎo)式  
>>> l = [1, 2, 3, 4, 2]  
>>> tmp = []  
>>> [tmp.append(i) for i in l if l.count(i) == 2]  
[None, None]  
>>> tmp  
[2, 2]  
>>> set(tmp)  
set([2])  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末壶熏,一起剝皮案震驚了整個濱河市句柠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖溯职,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件精盅,死亡現(xiàn)場離奇詭異,居然都是意外死亡谜酒,警方通過查閱死者的電腦和手機叹俏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僻族,“玉大人粘驰,你說我怎么就攤上這事∈雒矗” “怎么了蝌数?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長度秘。 經(jīng)常有香客問我顶伞,道長,這世上最難降的妖魔是什么剑梳? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任唆貌,我火速辦了婚禮,結(jié)果婚禮上垢乙,老公的妹妹穿的比我還像新娘锨咙。我一直安慰自己,他們只是感情好侨赡,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布蓖租。 她就那樣靜靜地躺著粱侣,像睡著了一般羊壹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上齐婴,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天油猫,我揣著相機與錄音,去河邊找鬼柠偶。 笑死情妖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诱担。 我是一名探鬼主播毡证,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蔫仙!你這毒婦竟也來了料睛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恤煞,沒想到半個月后屎勘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡居扒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年概漱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喜喂。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓤摧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玉吁,到底是詐尸還是另有隱情姻灶,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布诈茧,位于F島的核電站产喉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏敢会。R本人自食惡果不足惜曾沈,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸥昏。 院中可真熱鬧塞俱,春花似錦、人聲如沸吏垮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膳汪。三九已至唯蝶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遗嗽,已是汗流浹背粘我。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留痹换,地道東北人征字。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像娇豫,于是被迫代替她去往敵國和親匙姜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 《機械制圖》10%(50+30=80) 單項選擇題 Q-B1-E-001 L 基本幅面不能滿足需要而采用加長幅面時...
    開源時代閱讀 3,805評論 1 1
  • 這本書有一個很奇妙的構(gòu)思冯痢。前半部分氮昧,可能看起來有點無聊或详,講述的是哲學(xué)發(fā)展史,一些歷史上的哲學(xué)階段的觀點和人物...
    小小的分享啊閱讀 256評論 0 1
  • 在大多數(shù)人看來郭计,一向以理性思維居多的男性可能更適合理財霸琴,而偏情緒化、偏保守的女性昭伸,則會被扣以不善投資的帽子梧乘。那么女...
    8846482d58c9閱讀 157評論 0 1
  • 天之道选调,其猶張弓與?高者抑下灵份,下者舉之仁堪,有余者損之,不足者補之填渠。天之道弦聂,損有余而補不足。人之道氛什,則不然莺葫,損不足以奉...
    Josaber閱讀 955評論 0 0
  • 成都雅居樂納米汗蒸養(yǎng)生會所特邀成都歸藏居陳姝妃老師, 帶我們一起探索 一個男人如何擁有強大生命能量枪眉! 一個女人如何...
    歸藏居閱讀 635評論 0 0