如何迭代 Python 中单个字符的可预测进程?

How to iterate over a a predictable progression of single characters in Python?

我有一系列网站想看。

每个页面的名称是这样的:

book_page = ("http://target.com/books/char/X/")

其中 X 是字母表中的单个字母。所以范围将是

    mylist = ['A','B','C'] etc.

当我 运行 这样做时,我得到一个错误,因为范围应该是一个整数,但我宁愿有一个文本字符串。我知道我可以做这样的事情(如下),但我想知道是否还有其他方法?

到目前为止的工作代码:

    for x in range(1, 3):
       alpha = mylist[x]
       mypage = "http://target.com/books/char/" + alpha + "/"
       print alpha, mypage

你自己的生成器函数怎么样?

def charrange(start, end):
    return (chr(i) for i in xrange(ord(start), ord(end)))

for c in charrange('A', 'D'):
    print c

输出:

A
B
C

它遵循与 range 相同的语义,其中 end 是互斥的。遍历包含范围:

def icharrange(start, end):
    return (chr(i) for i in xrange(ord(start), ord(end)+1))

for c in icharrange('A', 'D'):
    print c

输出:

A
B
C
D

该字母序列已经在 string.ascii_uppercase 中。 for 遍历序列的元素。

import string

for letter in string.ascii_uppercase:
   ...

为了遍历 mylist 中的值,没有理由调用 range。相反,您可以简单地说:

for alpha in mylist:
   mypage = "http://target.com/books/char/" + alpha + "/"

这将使 alpha 成为您期望的值。