我正在研究Learn Python The Hard Way PDF。在第82页,我遇到了这个问题。
鉴于代码:
# we can also build lists, first start with an empty one
elements = []
# then use the range function to do 0 to 20 counts
for i in range(0, 6):
print "Adding %d to the list." % i # line 23
# append is a function that lists understand
elements.append(i)
# now we can print them out too
for i in elements:
print "Element was: %d" % i
除非我使用地图功能,否则这似乎是不可能的?我对么?
答案 0 :(得分:10)
在python 2.x中,range
返回一个列表。在3.x中,它返回一个可迭代范围对象。您始终可以使用list(range(...))
来获取列表。
但是,for x in y
不需要y
作为列表,只需要可迭代(例如xrange
(仅限2.x),range
,{{1 },list
,...)
答案 1 :(得分:4)
但你也可以做很复杂的作业。
elements = [0,1,2,3,4,5,6,7,8,9,10]
elements[3:5] = range(10,12) # replace indexes 3 and 4 with 10 and 11.
elements[3:7:2] = range(100,201,100) replace indexes 3 and 5 with 100 and 200
elements[:] = range(4) # replace entire list with [0,1,2,3]
[start,end,by]表示法称为切片。 Start是从(包括,默认为0)开始的索引。 End是结束的索引(独占,默认为len(列表))。 By是如何从索引移动到下一个(默认为1)
答案 2 :(得分:2)
提示可能意味着您可以简单地使用
elements = range(6)
具有相同的结果。
答案 3 :(得分:0)
elements = range(0,6)
这是一个隐含的列表。
答案 4 :(得分:0)
elements = range(0,5)
elements.extend(range(5, 10))
#elements = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]