python中遍歷字母
今天做leetcode的168題,感覺需要遍歷一下英文字母與數字對應,然後忽然發現 我只會for i in ['A','B',.....] ,這也太恥辱了~身為初級工程師,我覺得肯定有方法直接可以遍歷出字母,於是從網上查找了一些方法,親測有用~嗚哈哈
一、list
(
map
(
chr
,
range
(
ord
(
'a'
),
ord
(
'z'
)
+
1
)))
①map()
這裡的map 是會根據提供的函式對指定序列做對映。
map(function,iterable,...)
第一個引數 function 以引數序列中的每一個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。
比如:def increase(X):
return X+1
print(list(map(increase,[1,2,3,4])))
返回結果為:[2,3,4,5]
②ord()
ord() 函式是 chr() 函式(對於8位的ASCII字串)或 unichr() 函式(對於Unicode物件)的配對函式,它以一個字元(長度為1的字串)作為引數,返回對應的 ASCII 數值,或者 Unicode 數值,如果所給的 Unicode 字元超出了你的 Python 定義範圍,則會引發一個 TypeError 的異常。
返回值是對應的十進位制整數。
比如:print(ord('A'))
輸入結果為:65
③chr()
chr() 用一個範圍在 range(256)內的(就是0~255)整數作引數,返回一個對應的字元。
返回值是當前整數對應的ascii字元。
比如:print(chr(97))
輸出結果為: a
所以整體來說,是先將字母通過ord轉化為十進位制整數,然後利用map函式 呼叫chr方法 一一轉化為字母
二、[
chr
(x)
for
x
in
range
(
ord
(
'A'
),
ord
(
'Z'
)
+
1
)]
方法與 一 類似,這個方法是利用推導式,直接將轉化後的十進位制整數利用chr()函式生成字母。這裡大寫的字母也OK