列表中的项目与python中的范围(0,len(x))中的i之间的差异

时间:2016-06-13 09:55:06

标签: python list loops for-loop difference

我正在处理python中的列表,但是当涉及到使用这两个函数的区别时,我感到很难过。

def print_list(x):
    for j in range (0, len(x)):
        print x[j]

def print_list(x):
    for item in list:
        j = 0
        print x[j]
        j++

任何人都可以向初学者解释一下吗?谢谢!

2 个答案:

答案 0 :(得分:3)

我假设

def print_list(x):
    for j in range (0, len(x)):
         print x[j]

是循环如何在C ++中运行。所以你直观地理解了这一点。在此处,range生成(查找generators)值0len(x)for语句遍历它们。

正如评论中所指出的,你的第二种语法是错误的。我认为你的意思是

def print_list(x):
    for item in x:
        print(item)

for语句遍历列表item中的每个x 因此,如果您的列表为[1,3,5,7,9],则在第一个循环中,item将具有值1。在第二个循环中,item的值为3。在第3个循环中,item的值为5。等等。

当迭代完所有值后,for循环结束。

答案 1 :(得分:0)

第一个例子是正确的,它应该是pythonic足够的。第二个是不正确的。

def print_list(x):
    for item in list: #where is the iterable oject called list? This shuold be x
        j = 0 # if you use a counter like j you shuold be defining before the loop otherwise you keep resetting it to 0.
        print x[j]
        j++

如果你想在列表中打印所有元素,那么这是一种更加pythonic和更好的方法。

def print_list(list_item):
    for element in list_item:
         print(element)

您不需要像第一个示例中那样使用范围和len,list是可迭代对象,因此您可以像上面的示例那样执行而不必重新定义到range()。