for items in list 和 for i in range (0, len(x)) in python 之间的区别
Difference between for items in list and for i in range (0, len(x)) in python
我正在掌握 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++
任何人都可以向初学者解释一下吗?谢谢!
我假设
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
语句遍历列表 x
中的每个 item
。
因此,如果您的列表是 [1,3,5,7,9]
,在第一个循环中,item
将具有值 1
。在第二个循环中,item
将具有值 3
。在第三个循环中,item
将具有值 5
。等等。
当所有值都被迭代后,for
循环结束。
第一个例子是正确的,应该足够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)
您不需要像第一个示例那样使用 range 和 len,list 是可迭代对象,因此您可以像上面的示例一样操作而无需重复使用 range()。
我正在掌握 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++
任何人都可以向初学者解释一下吗?谢谢!
我假设
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
语句遍历列表 x
中的每个 item
。
因此,如果您的列表是 [1,3,5,7,9]
,在第一个循环中,item
将具有值 1
。在第二个循环中,item
将具有值 3
。在第三个循环中,item
将具有值 5
。等等。
当所有值都被迭代后,for
循环结束。
第一个例子是正确的,应该足够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)
您不需要像第一个示例那样使用 range 和 len,list 是可迭代对象,因此您可以像上面的示例一样操作而无需重复使用 range()。