今天做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