❶ python filter過濾器疑問
map是把函數調用抄的結果放在列表裡面返回,它也可以接受多個 iterable,在第n次調用function時,將使用iterable1[n], iterable2[n], ...作為參數。
filter(function, iterable)
這個函數的功能是過濾出iterable中所有以元素自身作為參數調用function時返回True或bool(返回值)為True的元素並以列表返回.
def f_large_than_5(x):
return x > 5
filter(f_large_than_5, range(10))
>>[6,7,8,9]
❷ python中的filter函數怎麼用
python filter內建函數
filter函數是python內建函數,可以操作任何可迭代類型,如list,tuple,string.
filter需要帶上一個函數function和一個可迭代序列作為參數。filter()將調用該function作用於每一個可迭代序列的元素,並返回一個由該function驗證後返回值為true的元素組成新的可迭代序列,新序列的類型保持與filter參數序列的類型一致
2.filter與數字
下面用這個例子來說明:
#建個數字列表
numbers=[1,5,9,8,4,6,3,7]
#定義一個過濾標准,取小於5的數
deflessThanFive(element):
returnelement<5
printfilter(lessThanFive,numbers)
輸出結果是列表:[1,4,3]
解說:此處的過濾函數lessThanFive必需帶入一個參數(filter()會調用lessThanFive,參數是列表nembers中的每一個元素,一次一個)。filter()返回所有值都是小於5的列表
3.filter與字元串
下面用如下例子說明:
#定義元組類型
names=('Jack','Jill,'Steve','')
#篩選出名字
new_names=filter(None,names)
printnew_names
輸出結果是元組:
('Jack','Jill,'Steve')
在元組names最後一個名字是空字元串,而filter的第一個參數是None,這說明需要使用identity函數(該函數是簡單的返回該元素的)
因為python對空字元串,0和None作為False,所以上面的filter的語句就是移除空元素。
4.filter和函數
目的:找出以J開頭的名字
defstartsWithJ(element):
ifelement:
returnelement[0]=='J'
returnFalse
j_names=filter(startsWithJ,names)
printj_names
輸出結果是元組:('Jack','Jill')
注意到了嗎,上面的2個結果都是tuple而不是list,再一次說明fliter的返回值類型與參數序列的類型保持一致
❸ 如何使用python過濾器操作系統使用程序 sort 和 more 排序並逐屏輸出數據
reverse()方法
將列表中元素反轉排序,比如下面這樣
>>> x = [1,5,2,3,4]
>>> x.reverse()
>>> x
[4, 3, 2, 5, 1]
reverse列表反轉排序:是把原列表中的元素順序從左至右的重新存放,而不會對列表中的參數進行排序整理。如果需要對列表中的參數進行整理,就需要用到列表的另一種排序方式sort正序排序。
sort()排序方法
此函數方法對列表內容進行正向排序,排序後的新列表會覆蓋原列表(id不變),也就是sort排序方法是直接修改原列表list排序方法。
>>> a = [5,7,6,3,4,1,2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 7]
在玩蛇網許多python初學者,對sort()方法比較糊塗。有的時候會需要一個排序好的列表,而又想保存原有未排序列表,他們會這么操作:
>>> a = [5,7,6,3,4,1,2]
>>> b = a.sort()
>>> print b
None
這個時候問題出現了,變數b得到的是一個空值。那麼想要得到排序好的列表,又想保留原列表怎麼辦呢?列表sorted()方法可以幫你實現。
sorted()方法
即可以保留原列表,又能得到已經排序好的列表sorted()操作方法如下:
>>> a = [5,7,6,3,4,1,2]
>>> b = sorted(a)
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]
sorted()方法可以用在任何數據類型的序列中,返回的總是一個列表形式:
>>> sorted('iplaypython.com')
['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y']
❹ 怎樣用Python過濾掉列表中某個元素的一部分內容
使用字元串的replace吧,把那些後綴都替換掉
❺ 怎樣用python實現從一個列表篩選數
統計一個列表中每一個元素的個數在Python里有兩種實現方式,
第一種是新建一個dict,鍵是列表中的元素,值是統計的個數,然後遍歷list。
❻ 如何用python代碼實現篩選
用python代碼實現篩選的方法:
python中的if語句可以實現篩選的效果。例如:篩選出列表裡的數字就可以用「if type(i) == int」語句來篩選
示例代碼如下:
執行結果如下:
更多Python知識,請關註:Python自學網!!
❼ python怎麼刪除列表中的偶數
可以用列表解析,如:
l=[1,2,2,3,4,5,6,8,10,9,6,8,99]
l=[e for e in l if e%2]
print(l)
運行結果截圖如下:
❽ Python實現判斷給定列表是否有重復元素的方法
num_list=[1,2,3,4,6,7,8,4,5,6,6,6]
iflen(num_list)!=len(set(num_list)):
print('有重復!!!')
else:
print('沒有重復!')
❾ Python中的eval()、filter()、float()函數有什麼用
Python解釋器內置了許多函數,這意味著我們無需定義,始終可以它們。下面按照函數的字母順序,討論一些常用的內建函數。
eval()
eval()函數解析傳給它的表達式,並在程序中運行Python表達式(代碼)。舉個例子:
>>>x=1
>>>eval("x+1")#注意:"x+1"是字元串
2
>>>eval("4<9")
True
>>>eval("'py'*3")
'pypypy'
>>>eval("10**2")
100
eval()函數不僅僅能運行簡單表達式,還能調用函數,使用方法等等:
>>>eval("abs(-11)")#計算-11的絕對值
11
>>>eval('"hello".upper()')#把字元串'hello'全變成大寫字母
'HELLO'
>>>importos
>>>eval('os.getcwd()')#獲取當前的工作目錄
'/home/thepythonguru'
但是需要注意的是eval()僅適用於表達式,嘗試傳遞語句會導致語法錯誤:
>>>eval('a=1')#賦值語句
Traceback(mostrecentcalllast):
File"",line1,in
File"",line1
a=1
^
SyntaxError:invalidsyntax
>>>eval('importre')#導入語句
Traceback(mostrecentcalllast):
File"",line1,in
File"",line1
importre
^
SyntaxError:invalidsyntax
此外,使用eval()語句應該十分小心,永遠不要將不受信任的源直接傳遞給eval()。 因為惡意用戶很容易對您的系統造成破壞。 例如:
>>>eval(input())#eval()將執行用戶輸入的代碼
用戶輸入以下代碼就能從系統中刪除所有文件:
os.system("RM-RF/")
#上面輸入相當於執行:
>>>eval('os.system("RM-RF/")')
filter()
"filter"的意思是「過濾」,filter()函數需要兩個參數:一個函數對象和一個可迭代對象。函數對象需要返回一個布爾值,並為可迭代的每個元素調用。 filter()函數僅返回那些通過函數對象返回值為true的元素。解釋有一些抽象,看一個例子:
>>>a=[1,2,3,4,5,6]
>>>filter(lambdax:x%2==0,a)#過濾出所有偶數,結果返回一個filter對象
<filterobjectat0x1036dc048>
>>>list(filter(lambdax:x%2==0,a))#可以使用list()函數使fileter對象變成列表,方便查看結果
[2,4,6]
下面是另外一個例子:
>>>dict_a=[{'name':'python','points':10},{'name':'java','points':8}]
>>>filter(lambdax:x['name']=='python',dict_a)#過濾出列表中鍵'name'為值'python'的字典
<filterobjectat0x1036de128>
>>>tuple(filter(lambdax:x['name']=='python',dict_a))#使用tuple()函數使結果變成字典
({'name':'python','points':10},)
float()
float()的參數是一個數字或者字元串,它返回一個浮點數。如果參數是字元串,則字元串中應該包含一個數字,並可以在數字前加入一個 '-' 符號,代表負數。參數也可以是表示NaN(非數字)或正無窮大的字元串。如果沒有任何參數的話,將返回0.0。
>>>float('+1.23')#1.23
1.23
>>>float('-12345 ')#-12345
-12345.0
>>>float('1e-003')#0.001
0.001
>>>float('+1E6')#10的6次冪
1000000.0
>>>float('-Infinity')#無窮小
-inf
>>>float('-inf')+100#負無窮小加100仍等於負無窮小
-inf
>>>float('inf')#無窮大
inf
>>>float('NaN')#NaN,代表非數字
nan
關於Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。
❿ 如何把列表外的列表移除python
python的列表list可以用for循環進行遍歷,實際開發中發現一個問題,就是遍歷的時候刪除會出錯,例如
l = [1,2,3,4]
for i in l:
if i != 4:
l.remove(i)
print l
這幾句話本來意圖是想清空列表l,只留元素4,但是實際跑起來並不是那個結果。再看下面,利用index來遍歷刪除列表l
l = [1, 2, 3, 4]
for i in range(len(l)):
if l[i] == 4:
del l[i]
print l
這樣沒問題,可以遍歷刪除,但是列表l如果變為 l = [1,2,3,4,5]
如果還是按照上面的方法,設想一下,range開始的范圍是0-4,中間遍歷的時候刪除了一個元素4,這個時候列表變成了= [1,2,3,5],這時候就會報錯了,提示下標超出了數組的表示,原因就是上面說的遍歷的時候刪除了元素
所以python的list在遍歷的時候刪除元素一定要小心
可以使用filter過濾返回新的list
l = [1,2,3,4]
l = filter(lambda x:x !=4,l)
print l
這樣可以安全刪除l中值為4的元素了,filter要求兩個參數,第一個是規則函數,第二個參數要求輸入序列,而lambda這個函數的作用就是產生一個函數,是一種緊湊小函數的寫法,一般簡單的函數可以這么些
或者可以這樣
l = [1,2,3,4]
l = [ i for i in l if i !=4]//同樣產生一個新序列,復值給l
print l
或者乾脆建立新的list存放要刪除的元素
l = [1,2,3,4]
dellist = []
for i in l:
if i == 4:
dellist.append(i)
for i in dellist:
l.remove(i)
這樣也能安全刪除元素
所以要遍歷的時候刪除元素一定要小心,特別是有些操作並不報錯,但卻沒有達到預期的效果
上面說到產生新序列,賦值等等,用python的id()這個內置函數來看對象的id,可以理解為內存中的地址,所以有個簡要說明
如果
l = [1,2,3,4]
ll = l
l.remove(1)
print l//肯定是[2,3,4]
print ll//這里會是什麼?
如果用id函數查看的話就發現
print id(l),id(ll)
列印出相同的號碼,說明他們其實是一個值,也就是說上面的print ll將和l列印的一樣,所以python有這種性質,用的時候注意一下就行了