Python数组中包含字符或字符串的范围

时间:2015-06-14 00:43:10

标签: python arrays

我是来自Java,C和Haskell环境的python的新手,我想知道是否存在类似于以下的内容但是使用字符串而不是数字,所以我有:

for i in range(5,11)
    print "Index : %d" %i

,结果将是:5,6,7,8,9,10(当然每个都在新的一行)。所以,我想对字符串使用相同的内容,例如:

for c in range("a","e")
    print "Alphabet : %s" %c

我只是很好奇,我用字符串和字符尝试了很多东西,但我无法获得我想要的结果。提前谢谢。

2 个答案:

答案 0 :(得分:3)

字符串在Python中是可迭代的,因此您可以简单地执行:

for c in 'abcde':
    print 'Alphabet:', c

Alphabet: a
Alphabet: b
Alphabet: c
Alphabet: d
Alphabet: e

如果你想要一个明确range的替代品,那就是(相当难看):

for c in range(ord('a'), ord('e')+1):
     print 'Alphabet:', chr(c)

Alphabet: a
Alphabet: b
Alphabet: c
Alphabet: d
Alphabet: e

range不会在Python中将字符串作为参数,因此您必须将字符转换为ASCII等价物,然后再将其转换回来。

答案 1 :(得分:1)

Python 2 如果您只想打印Alphabet的范围,则不能使用range()作为字符串。你只能将它用于integers,但你可以这样做:

Alphabet = 'abcdefghijklmnopqrstuvwxyz'
x = Alphabet[5:11]
print "Alphabet : %s" % x

输出结果为:

Alphabet : fghijk

如果您希望每个字符串都在一个新行中:

for i in x:
    print i

输出:

f
g
h
i
j
k

在Python 3中,您可以像这样打印print(i)