Python字符串如何進行相關的知識學習,我們在使用的時候有不少的問題阻礙著我們的使用。下面我們就詳細的看看如何才能更好的使用相關的Python字符串,希望對大家有所幫助。
看了大家用C++、C#、Java等語言的實現,總感覺牛刀殺雞太麻煩,有興趣的朋友可以自己寫寫看或者直接看原文的網友回復。我最近一段時間Python寫的比較多,讀到這些題目時候,就有一種躍躍欲試的沖動。因為我知道用Perl,Python,Ruby等動態語言來做這類題目,會是非常理想的。後來我做了這兩道題目,結果也令人滿意,代碼之簡潔保持在所有答案的前列。
先看第一題Python解答:
- dic = {}
- for s in "abcdefgabc":
- dic[s] = 1 if s not in dic else (dic[s]+1)
- print '\n'.join('%s,%s' % (k, v) for k, v in dic.items())
- 輸出結果:
- a,2
- c,2
- b,2
- e,1
- d,1
- g,1
- f,1
Python的四行代碼分別做了dictionary的聲明,賦值,字符串的遍歷,以及高效拼接。
如果還沒有看出它的簡潔和強大的話,請看第二題的解法:
- def main(offset=6):
- string = u'靜夜思 李白床前明月光,疑似地上霜。舉頭望明月,低頭思故鄉。090131'
- a = [[' ']*offset for row in xrange(offset)]
- for i in xrange(offset):
- for j in xrange(offset):
- a[i][j] = string[j + i*offset]
- b = [[r[col] for r in a[::-1]] for col in xrange(len(a[0]))]
- print '\n'.join([u'┊'.join(unicode(c) for c in row)for row in b])
輸出結果:
- 0┊低┊舉┊疑┊床┊靜9┊頭┊頭┊似┊前┊夜0┊思┊望┊地┊明┊思1┊故┊明┊上┊月┊ 3┊鄉┊月┊霜┊光┊李1┊。┊,┊。┊,┊白
這題如果用C#等實現,代碼要在20行以上。下面我簡單介紹一下這幾行代碼:
- 第3行,在Python裡面二維“數組”通過嵌套list來實現,這裡初始化一個6行6列的二維數組;
- 第7行,我們把“矩陣”順時針旋轉了90度(行列置換,並且對置換後的行首尾對調-這裡的::-1就是用來置換一個list的trick);
最後一行,我們把數組裡的每行中元素,每行之間分別用兩個不同字符拼接起來。join方法以及for..in..語句在Python字符串中是相當常見的用法。
通過這兩題,我們看到Python在處理字符串時候的十分靈活方便,雖然一種語言的好壞不應完全靠是否簡潔來衡量,但對於我個人而言,Python是目前我用過的最好的語言。而且對於趣味題來說,這不就是我們解題的趣味所在嗎?
以上就是對Python字符串的相關信息介紹。