日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 过滤字母和数字

發(fā)布時間:2024/10/12 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 过滤字母和数字 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【前言】在寫爬蟲時,正則表達式有時候比較難寫,一個是自己不熟練,二者數(shù)據(jù)分析提取數(shù)據(jù)千奇百怪。

 一、好在python有個re模塊,提供了很多更加簡便的方法;可參考此文檔:https://www.cnblogs.com/tina-python/p/5508402.html

 二、但有時候,不能實現(xiàn)過濾抽取的功能,python提供了filter函數(shù)。 可參考:? http://www.runoob.com/python/python-func-filter.html

具體的應用:

1 crazystring = 'dade142.!0142f[., ]ad' 2 3 # 只保留數(shù)字,使用內置方法str.isdigit 4 new_crazy = filter(str.isdigit, crazystring) 5 print(''.join(list(new_crazy))) 6 # 只保留字母 7 new_crazy = filter(str.isalpha, crazystring) 8 print(''.join(list(new_crazy))) 9 10 11 # 只保留字母和數(shù)字 12 new_crazy = filter(str.isalnum, crazystring) 13 print(''.join(list(new_crazy))) 14 15 # 如果想保留數(shù)字0-9和小數(shù)點’.’ 則需要自定義函數(shù) 16 #下面使用lambda表達式,方便快捷 17 new_crazy = filter(lambda ch: ch in '0123456789.', crazystring) 18 print(''.join(list(new_crazy)))

其中的str.isdigit是其內置方法。

我們也可以自己定義規(guī)則,不如只過濾出奇數(shù):

#!/usr/bin/python # -*- coding: UTF-8 -*-def is_odd(n):return n % 2 == 1newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(newlist)

定義函數(shù)時,可以使用lambda表達式,這樣會更加方便。

三、我的具體應用場景

  在寫爬蟲分析驗證碼時,用騰訊云分析回的json文件,提取驗證碼時用到正則匹配。一直找python的正則表達式,不好找也不好寫。

1、對傳回的json數(shù)據(jù),做一個正則提取:

r_index = r'itemstring":"(.*?)"'

2、然兒,提取的二維碼總會有噪聲,(.*?)是將所有數(shù)據(jù)都提取出來了。但是,我們深度學習識別出來的二維碼有噪聲,會有‘\'、‘_’、或者空格。需要二次處理。目標是提取數(shù)字和字母,不含有任何空格和噪聲。使用"\W+",會有下劃線。我們使用:

#接在上面的語句后面,進一步過濾 new_index = filter(str.isalnum, r_index)

3、最終可以實現(xiàn)百分之九十準確率。當然離不開深度學習算法對數(shù)字識別率高。

轉載于:https://www.cnblogs.com/huangfuyuan/p/9318825.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Python 过滤字母和数字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。