map函式用於遍歷序列。對序列中每個元素進行操作,最終獲取新的序列
如:
li=[11,22,33]
new_list=map(lambda a:a+100,li)
list(new_list)
輸出結果:
[111, 122, 133]
如:
li=[11,22,33]
s1=[1,2,3]
new_list=map(lambda a,b:a+b,li,s1)
list(new_list)
結果為: [12, 24, 36]
篩選函式filter:用於對序列中的元素進行篩選,最終獲取符合條件的序列li=[11,22,33]
new_list=filter(lambda x:x>22,li)
list(new_list)
結果為:[33]
累計函式(reduce):用於對序列內所有元素進行累計操作from functools import
reduce
li=[11
,22,33
,44]reduce
(lambda arg1,arg2:arg1+arg2,li)
結果為:
110
reduce函式還可以接受第3個可選元素,作為計算的初始值,如果把初始值設為100
reduce(lambda arg1,arg2:arg1+arg2,li,100)
結果為:210
計算過程如下:
第一步:先計算初始值和第1個元素,即100+11,結果為:111
第一步:再把結果和第2個元素計算,即111+22,結果為:133
依次計算…
類和物件:
注意到__init__方法的第乙個引數永遠是self,表示建立的例項本身,因此在__init__方法內部,就可以把各種屬性繫結到self,因為self就指向建立的例項本身
私有變數和私有方法:
類可以有公有變數和公有方法,也可以有私有變數和私有方法,公有部分的物件可以從外部訪問,而私有部分的物件只有在類的內部才可訪問。在普通變數名或方法名前加兩個"_",即可成為私有變數或方法
例項:
#! /usr/bin/python
# -*- coding:utf-8 -*-
class
pubandpri
: pub=
"這是公有變數"
__pri=
"這是私有變數"
def__init__
(self)
: self.other=
"公有變數也可以這樣定義"
defout_pub
(self)
:print
("公有方法"
,self.pub,self.__pri)
def__out_pri
(self)
:print
("私有方法"
,self.pub,self.__pri)
pp = pubandpri(
)pp.out_pub(
)#公有方法 這是公有變數 這是私有變數
print
(pp.pub,pp.other)
#這是公有變數 公有變數也可以這樣定義
try:
pp.__out_pri(
)except exception as e:
print
("呼叫私有方法發生錯誤!"
)#走到了這一步
try:
print
(pp._pri)
except exception as e:
print
("訪問私有變數發生錯誤!"
)#走到了這一步
結果為:
公有方法 這是公有變數 這是私有變數
這是公有變數 公有變數也可以這樣定義
呼叫私有方法發生錯誤!
訪問私有變數發生錯誤!
注意1:使用str.split()省略分隔符時,會按所有的分隔符號分割,包括\n(換行) \t(tab縮排)等。
注意2:列表和元組之間是可以相互轉換的,如list(tuple)、tuple(list)元組操作速度比列表快,列表可改變,元組不可改變,可以將列表轉為元組的"寫保護"狀態。
注意3:當變數時私有的時候,使用_***來表示變數是很好地習慣,這時變數在模組或類外不可以使用,意思是只有類物件和子類物件自己能訪問到這些變數
注意4:以__雙下劃線開頭的變數名__***代表私有成員,意思是只有類物件自己能訪問,連子類物件也不能訪問這個資料
關於備份:
很多時候處理資料前需要先把資料複製乙份,做個備份,但是python裡複製資料有不少坑點
參見下面的例項:
>>
> a=[3
,2,5
,4]>>
>
id(a)
#檢視a的儲存位址
46419656
>>
> c=a #複製乙個副本c
>>
> c[3
,2,5
,4]>>
>
id(c)
#檢視c的儲存位址
46419656
#看到c的位址和a的位址一致,說明c不是真正的複製
>>
> b=a[:]
#複製乙個副本b,把a的所有元素賦值給b
>>
> b[3
,2,5
,4]>>
>
id(b)
#檢視b的儲存位址
46416712
#發現b和a的位址不同,說明備份成功
>>
> a=[1
,2]>>
> b=a
>>
> c=a.copy(
)>>
> d=a[:]
>>
> b[1
,2]>>
> c[1
,2]>>
> d[1
,2]>>
>
id(a)
46416904
>>
>
id(b)
46416904
>>
>
id(c)
46416712
>>
>
id(d)
46419656
可以看到c和d都是對a的複製 Python資料分析基礎知識
現在python資料分析是這個方向越來越受到重視,一般的大型網際網路公司都會有這個崗位,畢竟在網際網路的世界裡資料是基礎,所以,很多人看好python資料分析師這個崗位,想從事資料分析,那麼資料分析都需要有什麼基礎呢?首先,我們以企業對應的崗位jd來作為學習的嚮導,應該是最準確的。我們來看看某招聘 ...
Python基礎知識點
python2與python3編碼相容性 python2如果沒有指定編碼格式,預設的編碼是ascii,不進行轉換會出現unicodedecodeerror錯誤,為了使得python2與3進行相容,可以用如下 實現 import sys from django.utils import six if ...
資料分析 基礎知識
1.截位直除 1 選項差距大 保留兩位 a.選項首位不同 b.首位相同,次位差大於首位 2 選項差距小 保留三位 首位相同,次位差小於等於首位 一步除法 只截分母 多步除法 分子 分母都截2.比較型 1 一大一小,直接看 分子大的分數大 2 同大同小 a.豎著直除 兩個以上分數時,優先使用 b.橫著...