python字符串去頭尾_帶你認識優秀的python代碼

c635401d6f2d6abe8788fa451610ef20.png

有一串長的字符串names = "LI XIA , ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI, CHANG JIANG,LI QIANG,ZHANG WU JI,ZHANG SAN FENG,DU GU QIU BAI,QIAO FENG"。

要求:(1)過濾所有的名字,去掉每個名字左右的空格和亂碼,每個名字的首字母大小比如‘LAO WANG*’,處理成‘Lao wang’;(2)統計出最長的名字;(3)統計出同姓人的名單。

解讀題目要求,我們可以這樣考慮。過濾掉名字左右的空格和亂碼,我們可以考慮使用strip函數;每個名字首字母大寫,我們可以用title函數;要統計最長的名字,我們需要將每個名字的字符串個數進行切片統計,這里用split函數。

根據上面的思路,編寫的代碼如下:

names = "LI XIA , ZHAO MING ,LAO WANG *,DA XIONG >,LI MEI MEI,""CHANG JIANG,LI QIANG,ZHANG WU JI,ZHANG SAN FENG,""DU GU QIU BAI,QIAO FENG"
def problems7(names):newnames =[name.title().strip('*>') for name in names.split(',')]names_dict = {name:len(name) for name in newnames}result = sorted(names_dict.items(),key=lambda x:x[1],reverse=True)print(result)problems7(names)

輸出的結果是:

[('Zhang San Feng', 14), ('Du Gu Qiu Bai', 13), (' Zhao Ming ', 11), ('Chang Jiang', 11), ('Zhang Wu Ji', 11), ('Li Mei Mei', 10), ('Lao Wang ', 9), ('Da Xiong ', 9), ('Qiao Feng', 9), ('Li Qiang', 8), ('Li Xia ', 7)]

下面介紹剛才使用到的函數。

1.strip函數

用于移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。但需要注意的是,該方法只能刪除開頭或結尾的字符,不能刪除中間部分的字符。

語法是:str.strip([chars]), chars—移除字符串頭尾指定的字符序列。

返回值:返回移除字符串頭尾指定的字符生成的新字符串。

2.split函數

通過指定分隔符對字符串進行切片,如果參數num有指定值,則分隔num+1個子字符串。

語法:str.split(str=“ ”,num=string.count(str))。str—分隔符,默認為所有的空字符,包括空格、換行、制表符等;num—分割次數,默認為-1,即分隔所有。

最后,給大家介紹一些優秀的python代碼。

1.簡潔的表達式,比如if/else放在一行里面

def test(m):return 'a' if m==1 else 'b'

2.構成一個字典序列

print(dict(zip('abcd',range(4))))    >>{'a':0, 'c':2, 'b':1,'d':3}

3.if else print一行搞定

print('ok' if a==1 else 'ko')

4.一行代碼,巧妙的求解:列出1到20的數字,若是3的倍數就用apple代替,若是5的倍數就用orange代替,若既是3的倍數又是5的倍數就用appleorange代替。

print(['apple'[i%35::]+'orange'[i%56::] or i for i in range(1,21)])

很多問題一行代碼都可以搞定,但是我覺得作為一個小白,咱們還是老老實實的一步一步的編寫代碼,等到自己有能力的時候,在玩這些騷操作吧。

今天的分享就到這里,我盡可能地把每一個問題都講透徹,希望小伙伴們一定要動手操作,把每個代碼都親手敲一遍。別人的思考應該是你思考的起點,但絕非是你思考的終點。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257739.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257739.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257739.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python學習筆記之裝飾器、遞歸、算法(第四天)

參考老師的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 銀角:http://www.cnblogs.com/wupeiqi/articles/4963027.html 一、冒泡算法實例: a [32,5,22,41,7,31,12,102,74,37,9,25] 1、方法1: c…

數字信號處理筆記1-信號與常見操作

年輕人,你對數學一無所知,你只是習慣了而已。 —馮諾伊曼 前言 本學期開始跟著實驗室學習計算機視覺領域,而一個重要的基礎知識就是《數字圖像處理》,而數字信號處理作為一個大類,可以將數字圖像處理理解為數字信號處…

[linux驅動]linux驅動模塊

一,內核模塊的概念 經常在內核驅動代碼看到類似fs_init()等驅動初始化函數,那么這個和module_init()函數的差別在哪里,宏定義__define_initcall(level,fn)對于內核的初始化很重要,他指示編譯器在編譯的時候,將一系列初…

看我如何基于PythonFacepp打造智能監控系統

由于種種原因,最近想親自做一個基于python&facepp打造的智能監控系統。 000:萌芽 1:暑假在家很無聊 想出去玩,找不到人。玩個lol(已卸載),老是坑人。實在是無聊至極,不過&#x…

c++ 遍歷所有點且距離最短_編程小白暑期進階筆記41-C語言數據結構與算法圖遍歷的應用...

基于廣度優先遍歷算法的應用思考題:(思考題答案:BFS(廣度優先遍歷)在一般的帶權圖中是不能解決最短路問題,了解BFS的都知道,BFS是根據節點到源節點之間的節點數遍歷的,也就是先訪問離源節點節點數最少的點。…

underscorejs-groupBy學習

2.18 groupBy 2.18.1 語法 _.groupBy(list, iteratee, [context]) 2.18.2 說明 把list分為多個集合,iterator為分組的依據,返回值為Object list可以是數組、對象、字符串或arguments等iteratee為分組的依據.iterator的參數(value, key, list)iterator如果是function…

關于@WebServlet(“LoginServlet“)404 報錯的解決辦法 “請求的資源[/test/LoginServlet] 不可用”

關于WebServlet(“LoginServlet”)404 報錯的解決辦法 “請求的資源[/test/LoginServlet] 不可用” *一切事物的開頭總是困難這句話,在任何一種科學上都是適用的。 * ——馬克思 一個困擾了我n天的問題,終于終于還是解決了&#…

ASP.NET MVC+EF框架+EasyUI實現權限管理系列(14)-主框架搭建

ASP.NET MVCEF框架EasyUI實現權限管理系列(14)-主框架搭建 原文:ASP.NET MVCEF框架EasyUI實現權限管理系列(14)-主框架搭建ASP.NET MVCEF框架EasyUI實現權限管系列 (開篇) (1):框架搭建 (2):數據庫訪問層的設計Demo (3):面向接口編程 (4 ):業務邏輯層的封裝 (5):前臺…

常用事務代碼 sap_SAP_PS_事務代碼

[轉]SAP PS常用事務代碼T-CODESAP項目系統(Project System,以下簡稱PS)模塊作為傳統的非常規模塊(除FI、CO、MM、PP、SD之外的模塊)之一,在最近幾年在國內也得到的較為廣泛的應用,與PS應用火熱場景相對應的是PS內外部顧問的極度缺乏。這種缺乏一方面表現…

Java 冒泡排序的實現

實現原理: 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。在這一點,最后的元素應該會是最大的數。 針對所有的元素重復以上的步驟,除了最后一個…

CLion for mac安裝配置

前言 本文詳細多圖介紹 IntelliJ IDEA For Mac的激活教程,相當于永久激活 文件包百度云下載:(通過與熊論道網站解密) 熊曰:呋溫捕嘿誘襲氏樣溫住既非破哮誒襲非捕溫肉性盜森魚非襲啽蜜呦訴嘿溫類盜山寶住出森非喜誘捕發嗥既肉嗅…

solr后臺界面介紹——(十一)

1.加一個collection的方法 復制solr-home下的collection1,修改名字為collection2。并且修改collection2文件夾中配置文件core.properties中的名字為collection2,重啟服務器。 2.后臺界面介紹 Dashboard 儀表盤,顯示了該Solr實例開始啟動運行的…

功率信號與能量信號的超棒理解!

功率信號與能量信號的理解! 功率信號和能量信號一直是一個令我疑惑的概念,一個無限一個為零。但是下面令我茅塞頓開! ~~~分割線啊分割線~~~

vscode終端不識別python_VSCode無法識別我的已安裝Python包

Windows上的VSCode與Python。 Don安裝的Python擴展,不確定它有什么不同,但考慮給我的環境使用VSCode for Python,在那個過程中,我安裝了metapy包。我能夠在VSCode中的終端窗口內運行此metapy,但不能在編輯器中運行PS C…

現在也是只能謝謝隨筆了,但是在以后收貨的日子里會有更多的感想記下

每天雖然都會在各個方面都記下一點日常事務的說明,但是會有重復,以后工作了向高中一樣一定會有許多的話,但是我不希望這是一些抱怨,更多的應該是收貨,這幾天也是早上不知怎么會有點頭疼,加上每天取暖口有點…

[轉載]AngularJS之Factory vs Service vs Provider

http://www.oschina.net/translate/angularjs-factory-vs-service-vs-provider http://tylermcginnis.com/angularjs-factory-vs-service-vs-provider/ 要注意的文章中,app.provider(...)里的代碼有點出處,之后作者改過,但是轉載的網站上圖片…

C#學習筆記:預處理指令

C#和C/C一樣,也支持預處理指令,下面我們來看看C#中的預處理指令。 #region 代碼折疊功能,配合#endregion使用,如下: 點擊后如下: 條件預處理 條件預處理可以根據給出的條件決定最終進行編譯的代碼&#xff…

android sh 指令_Java/Android中實現Shell命令

有時候我們需要實現一個功能。不過這個功能用我們傳統的Java代碼實現起來會有一些困難,這時我們可以嘗試利用Shell命令來實現。你可以按照下面的代碼模塊來進行你想要實現的Shell命令(注:也不是所有的Shell命令都能用Java代碼來實現)。public class Main…

【數字信號處理】 第二章、時域中的離散時間信號

前言 學而時習之,不亦樂乎? ——《論語學而》 Is it not pleasant to learn with a constant perseverance and application? 。 第二章 時域中的離散時間信號 一、離散信號的基本定義 1、兩個基本類型 抽樣數據類型:即模擬信號通過定周期進行采樣…

開機流程與主引導分區(MBR)——鳥哥私房菜

在前篇隨筆中,已經談到了CMOS與BIOS,CMOS是記錄各項硬件參數(包括系統時間、設備的I/O地址、CPU的電壓和頻率等)且嵌入到主板上面的存儲器,BIOS是一個寫入到主板上的韌體(韌體是寫入到硬件上的一個軟件程序…