python与ruby块中的变量范围

时间:2015-02-28 18:54:12

标签: python ruby loops

我是Python的新手,所以请耐心等待。在红宝石中我可以写:

test = []
10.times do |i|
 test.push(i)
end
put test.to_s
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Python我试图检索类似的结果:

test = []
for i in range(10):
  test.append(i)

print test
>>> [0]
>>> [0, 1]
>>> [0, 1, 2]
>>> [0, 1, 2, 3]
...

因此对于ruby,我可以编写一个块并附加到该块范围之外的变量。使用python有类似的方法吗?

2 个答案:

答案 0 :(得分:0)

评论是对的;你写的内容是正确的,但如果你想要那个列表,你可以写test = range(10)。如果您想对元素执行更复杂的操作,可以使用list comprehensions,例如test = [i for i in range(10)]

答案 1 :(得分:-1)

  

在红宝石中我可以写:

test = []

10.times do |i|
 test.push(i)
end

put test.to_s  #Note, in ruby you would write: p test
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

python中的粗略等价物是:

test = []

def block(i):
    test.append(i)


for i in range(10):
    block(i)

print test

--output:--
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

请参阅python的范围规则here