這篇文章主要介紹“python怎么解決有序字符數(shù)問(wèn)題”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“python怎么解決有序字符數(shù)問(wèn)題”文章能幫助大家解決問(wèn)題。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的湖北網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
有序字符數(shù)
1.1 菜雞解法
from collections import OrderedDict
def ordered_count(input):
counts = OrderedDict()
for char in input:
counts[char] = counts.get(char, 0) + 1
return list(counts.items())
1.2 高手解法1
from collections import OrderedDict, Counter
class OrderedCounter(Counter, OrderedDict):
pass
def ordered_count(seq):
m=OrderedCounter(seq)
return list(OrderedCounter(seq).items())
1.3 高手解法2
from collections import Counter
def ordered_count(input):
return list(Counter(input).items())
1.4 點(diǎn)評(píng)
這道題因?yàn)橐紤]有序,就是按照字符串里面的字符順序,同時(shí)要統(tǒng)計(jì)字符出現(xiàn)的次數(shù)。高手解法1非常巧妙,里面兩個(gè)類的繼承,同時(shí)繼承了collection 模塊里面的OrderedDict和Counter兩個(gè)子類。很秒!
縮寫(xiě)雙字名稱答案
2.1 高手解法1
def abbrevName(name): return '.'.join(w[0] for w in name.split()).upper()
2.2 高手解法2
abbrevName = lambda name: ".".join(e[0].upper() for e in name.split())
2.3 點(diǎn)評(píng)
幾種高手的解法都是利用列表推導(dǎo)列表進(jìn)行快速處理,然后用字符串自帶upper()函數(shù)進(jìn)行全大寫(xiě)。建議要熟悉常用的內(nèi)置函數(shù),比如:
''.lower()''.upper()''.count()''.startswith()''.capitalize()
關(guān)于“python怎么解決有序字符數(shù)問(wèn)題”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。