最近開發(fā)Erlang,對其字符串處理能力無言至極,于是決定把它和python聯(lián)合起來,打造一個強力的分布式系統(tǒng),等將來需要系統(tǒng)級開發(fā)時,我再把C++/C組合進來.首先參考了Erlang官方文檔和http://blog.developers.api.sina.com.cn/?tag=erlang以及http://kazmier.net/computer/port-howto/.研讀了將近24個小時,才終于完全把問題解決.起名為town,town在英文里表示集
系統(tǒng) 2019-09-27 17:48:01 1952
在類中每次實例化一個對象都會生產(chǎn)一個字典來保存一個對象的所有的實例屬性,這樣非常的有用處,可以使我們?nèi)我獾娜ピO(shè)置新的屬性。每次實例化一個對象python都會分配一個固定大小內(nèi)存的字典來保存屬性,如果對象很多的情況下會浪費內(nèi)存空間。可通過__slots__方法告訴python不要使用字典,而且只給一個固定集合的屬性分配空間classFoo(object):__slots__=("x","y","z")def__init__(self,x,y):self.x=
系統(tǒng) 2019-09-27 17:47:50 1952
========堅持30天刷leetcode=====題目鏈接:https://leetcode-cn.com/problems/4sum/分析:本題的解題思路與上一題類似,排序,然后先固定幾個位置,再首尾各一個變量移動遍歷。關(guān)鍵在于:特殊情況的判別,從而降低時間復雜度。classSolution:deffourSum(self,nums,target):k=len(nums)ifk<4:returnNone#特殊情況:數(shù)組小于4ifk==4andsum(
系統(tǒng) 2019-09-27 17:47:39 1952
題目描述請實現(xiàn)一個函數(shù)用來找出字符流中第一個只出現(xiàn)一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現(xiàn)一次的字符是"g"。當從該字符流中讀出前六個字符“google"時,第一個只出現(xiàn)一次的字符是"l"。輸出描述:如果當前字符流沒有存在出現(xiàn)一次的字符,返回#字符。思路用兩個列表,一個用來保存所有的字符,一個用來保存只出現(xiàn)一次的字符,算法#-*-coding:utf-8-*-classSolution:#返回對應(yīng)chardef__init__
系統(tǒng) 2019-09-27 17:47:35 1952
下面僅以多線程為例:首先需要明確幾個概念:知識點一:當一個進程啟動之后,會默認產(chǎn)生一個主線程,因為線程是程序執(zhí)行流的最小單元,當設(shè)置多線程時,主線程會創(chuàng)建多個子線程,在python中,默認情況下(其實就是setDaemon(False)),主線程執(zhí)行完自己的任務(wù)以后,就退出了,此時子線程會繼續(xù)執(zhí)行自己的任務(wù),直到自己的任務(wù)結(jié)束,例子見下面一。知識點二:當我們使用setDaemon(True)方法,設(shè)置子線程為守護線程時,主線程一旦執(zhí)行結(jié)束,則全部線程全部被
系統(tǒng) 2019-09-27 17:47:34 1952
1、介紹itertools是python的迭代器模塊,itertools提供的工具相當高效且節(jié)省內(nèi)存。使用這些工具,你將能夠創(chuàng)建自己定制的迭代器用于高效率的循環(huán)。-無限迭代器itertools包自帶了三個可以無限迭代的迭代器。這意味著,當你使用他們時,你要知道要的到底是最終會停止的迭代器,還是需要無限地迭代鞋去。(1)count(初值=0,步長=1):count迭代器會返回從傳入的起始參數(shù)開始的均勻間隔的數(shù)值。count也可以接收指定的步長參數(shù)。我們來看一
系統(tǒng) 2019-09-27 17:47:20 1952
本文實例講述了Python中zip()函數(shù)的定義及用法,相信對于Python初學者有一定的借鑒價值。詳情如下:一、定義:zip([iterable,...])zip()是Python的一個內(nèi)建函數(shù),它接受一系列可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個tuple(元組),然后返回由這些tuples組成的list(列表)。若傳入?yún)?shù)的長度不等,則返回list的長度和參數(shù)中長度最短的對象相同。利用*號操作符,可以將listunzip(解壓)。二、用法
系統(tǒng) 2019-09-27 17:47:05 1952
函數(shù)的對象python中一切皆對象函數(shù)對象的四大功能引用deff1():print('fromf1')f1()#調(diào)用函數(shù)print(f1)print('*'*50)f=f1#將函數(shù)名f1賦值給ff()#f也可以調(diào)用函數(shù)print(f)fromf1**************************************************fromf1函數(shù)名相當于一個變量名,既能接收函數(shù)體返回的值,也能賦值。當做參數(shù)傳給一個函數(shù)deff1():prin
系統(tǒng) 2019-09-27 17:46:53 1952
當在python中遍歷一個序列時,我們通常采用如下的方法:foriteminsequence:process(item)如果要取到某個item的位置,可以這樣寫:forindexinrange(len(sequence)):process(sequence[index])另一個比較好的方式是使用python內(nèi)建的enumerate函數(shù):enumerate(sequence,start=0)上述函數(shù)中,sequence是一個可迭代的對象,可以是列表,字典,文
系統(tǒng) 2019-09-27 17:46:14 1952
django使用app機制來實現(xiàn)組件的重用,充分的利用已有的app可以極大的簡化開發(fā)工作。目前django下的app雖然還不夠豐富,卻也還是有部分不錯的。django-tagging就是一個不錯的app。現(xiàn)在tag的應(yīng)用非常廣泛,tag基本上成了各網(wǎng)站的必備項目之一,django-tagging就是一個提供tag功能的app。django-tagging提供的功能非常豐富,使用起來卻十分簡單。下面我就介紹一些常用的用法,讓大家對該app有個基本的了解,更詳
系統(tǒng) 2019-09-27 17:46:09 1952