我正在处理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++
任何人都可以向初学者解释一下吗?谢谢!
答案 0 :(得分:3)
我假设
def print_list(x):
for j in range (0, len(x)):
print x[j]
是循环如何在C ++中运行。所以你直观地理解了这一点。在此处,range
生成(查找generators)值0
到len(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()。