1、python中list的remove()方法
作用:remove()函式用於移除列表中某個值的第乙個匹配項。
示例:
alist = [123, 'xyz', 'zara', 'abc', 'xyz']
alist.remove('xyz')
print(alist)
結果: [123, 『zara』, 『abc』, 『xyz』]
用處:python實現快排
def quick_sort(data):
"""快速排序"""
if len(data) >= 2: # 遞迴入口及出口
mid = data[len(data)//2] # 選取基準值,也可以選取第乙個或最後乙個元素
left, right = , # 定義基準值左右兩側的列表
data.remove(mid) # 從原始陣列中移除基準值
for num in data:
if num >= mid:
else:
return quick_sort(left) + [mid] + quick_sort(right)
else:
return data
array = [2,3,5,7,1,4,6,15,5,2,7,9,10,15,9,17,12]
print(quicksort(array))
# 輸出為[1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 9, 9, 10, 12, 15, 15, 17]
2、python中列表相加的兩種方法:
(1)利用操作符+
a = [1,2,3]
b = [4,5,6]
c = a+b
c的結果:[1,2,3,4,5,6]
(2)利用extend
a = [1,2,3]
b = [4,5,6]
a.extend(b)
a的結果:[1,2,3,4,5,6]
3.python例項化
在python中例項化乙個物件包含了幾個階段,但它的妙處在於它們自身是pythonic(python之禪)的——理解這些步驟使得我們對python整體有多一點的了解。foo是乙個類,但是python中的類也是物件!類、函式、方法以及例項都是物件,並且無論何時你將一對括號放在它們的名字後面時,就會呼叫它們的__call__方法。所以foo(1, y=2)是等價於foo.call(1, y=2)的。__call__方法是定義在foo的類中的。foo的類是什麼呢?
foo.__class__
如果我們忽略錯誤檢查,那麼對於常規類的例項化它大致等同如下:
def __call__(obj_type, *args, **kwargs):
obj = obj_type.__new__(*args, **kwargs)
if obj is not none and issubclass(obj, obj_type):
obj.__init__(*args, **kwargs)
return obj
__new__方法為物件分配了記憶體空間,構建它為乙個「空"物件然後__init__方法被呼叫來初始化它。
總的來說:
foo(*args, **kwargs)等價於foo.call(*args, **kwargs)
既然foo是乙個type的例項,foo.call(*args, **kwargs)實際呼叫的是type.call(foo, *args, **kwargs)
type.call(foo, *args, **kwargs)呼叫type.new(foo, *args, **kwargs),然後返回乙個物件。
obj隨後通過呼叫obj.init(*args, **kwargs)被初始化。
obj被返回。
Python小知識點
1.時間戳 從1970年到現在的秒數 time2 time.time print time2 date9 datetime.datetime.now print date9.timestamp 上面是兩種用到時間戳的 stamp 郵戳。timestamp 時間戳,時間線。2.執行緒休眠 爬蟲 獲取對...
Python小知識點
1.預設引數 必須放在引數列表的隊尾 普通形參必須放在預設引數的前面 def test a,b 3 passtest test 2.函式引數可以為任意型別 testb testa 3.args返回的是乙個元組 4.map函式裡面需要兩個值 值1 必須是函式 值2 序列 容器 作用 將序列裡面的每個元...
python 小知識點
python strip 方法用於移除字串頭尾指定的字元 預設為空格或換行符 或字串行。注意 該方法只能刪除開頭或是結尾的字元,不能刪除中間部分的字元。strip 方法語法 str.strip chars 返回移除字串頭尾指定的字元生成的新字串。以下例項展示了strip 函式的使用方法 以上例項輸出...