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