
昨天在公衆号發了第一個廣告,是商家主動找的我,考慮到自己現在的粉絲比較少,我沒有收取任何廣告費。這篇關于Python的廣告,大家還是結合自身實際再去買課,網際網路時代,最不缺的就是資源,但我們不要做資源的巨嬰,要利用好手裡的每一份資源。
一起來看看今天的題目吧。
有一串長的字元串 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)統計出姓的人的名單;
我先抛個磚,我的代碼如下:
from pprint import pprint
def checkName(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)
pprint(result)
if __name__ == '__main__':
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"
checkName(names)
複制
(代碼可以左右滑動)
代碼解析:
(1)pprint子產品,提供了可以按照某個格式正确的顯示Python已知類型資料的一種方法,這種格式可被解析器解析,又很易讀。
Print()和pprint都是Python的列印子產品,功能基本一樣,差別是ppint子產品列印出來的資料結構更加完整,每行為一個資料結構,更加友善閱讀列印輸出結果。特别是對于特别長的資料列印,print()輸出結果都在一行,不友善檢視,而pprint采用分行列印輸出,是以對于資料結構比較複雜、資料長度較長的資料,适合采用pprint()列印方式。
(2)title()方法
該方法傳回「标題化」的字元串,就是說所有單詞都是以大寫開始,其餘字母均為小寫。
文法:str.title()
(3)strip()方法
該方法用于移除字元串頭尾指定的字元(預設為空格或換行符)或字元序列,注意:該方法隻能删除開頭或是結尾的字元,不能删除中間部分的字元。
文法:str.strip([chars]),chars——移除字元串頭尾指定的字元序列。
(4)split()方法
通過指定分隔符對字元串進行切片,如果參數num有指定值,則分隔num+1個字元串。
文法:
str.split(str=“”,num=string.count(str))。
str——分隔符,預設為所有的空字元,包括空格、換行(\n)、制表符(\t)等;num——分割次數。預設為-1,即分割所有。
(5)items()方法
以清單傳回可周遊的(鍵、值)元組或數組。
文法:dict.items(),舉例說明:
dict = {'Name': 'Runoob', 'Age': 7}
for i,j in dict.items():
print(i, ":\t", j)
複制
Name : Runoob
Age : 7
複制
(6)key=lambda 元素:元素[字段索引]
比如
print(sorted(C,key=lambda x:x[1]))
x:x[1]字母可以随意修改,排序方式按照中括号[]裡面的次元進行排序。[0]按照第一維排序,[1]按照第二維排序,[2]按照第三維排序。用執行個體具體說明一下。
取第一維
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[0])
print(y, z)
複制
2.2 1.8
複制
取第二維
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[1])
print(y, z)
複制
1.3 4.0
複制
取第三維
C = [('e', 4, 2), ('a', 2, 1), ('c', 5, 4), ('b', 3, 3), ('d', 1, 5)]
print(sorted(C, key=lambda x: x[2]))
複制
[('a', 2, 1), ('e', 4, 2), ('b', 3, 3), ('c', 5, 4), ('d', 1, 5)]
複制
今天的分享就這麼多,希望對大家了解和鞏固Python基礎知識有幫助。