有没有办法在 python 3 中的 range() 中设置两个起点和终点


for i in range(65, 123)

我希望 i 的范围从 65 到 91 和从 97 到 123(大写和小写字母的 ASCII(省略 92 到 96,但我只能输入一个开始值和一个停止值。有没有办法省略这些或设置不同的开始和停止值?

您可以使用

itertools.chain链接两个范围对象:

>>> from itertools import chain
>>> chain(range(5), range(9, 14))
<itertools.chain object at 0x101a8e588>
>>> list(_)
[0, 1, 2, 3, 4, 9, 10, 11, 12, 13]

 from itertools import chain
 for i in chain(range(65, 91), range(97, 123)):
     ...
您可以使用

itertools.chain

import itertools
for i in itertools.chain(range(65, 92), range(97, 123)):
list(range(65,92)) + list(range(97,124))

将输出:

[65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123]

首先,你不应该在代码中使用"幻数"。如果 65 是"A"的 ASCII 代码,请说:ord('A') 。其次,您可以将两个列表合并为一个列表并对其进行迭代:

for i in list(range(ord('A'),ord('Z')+1)) + list(range(ord('a'),ord('z')+1)):

最新更新