Python for循环中的语句在使用';列表(zip_变量)和#x27;,但在使用'之前打印;列表(zip_变量)和x27;
正在打印“使用列表前您好(zip_shop)” 未打印“使用列表后您好(zip_shop)”语句 有人能帮我理解这里的行为吗 输出如下:Python for循环中的语句在使用';列表(zip_变量)和#x27;,但在使用'之前打印;列表(zip_变量)和x27;,python,python-3.x,Python,Python 3.x,正在打印“使用列表前您好(zip_shop)” 未打印“使用列表后您好(zip_shop)”语句 有人能帮我理解这里的行为吗 输出如下: groceries = ['apple', 'chips', 'bread', 'icecream'] and price = [2, 3, 1.2, 4.25] zip_shop = <zip object at 0x0000022852A29948> and type(zip_shop) = <class 'zip'> and i
groceries = ['apple', 'chips', 'bread', 'icecream'] and price = [2, 3, 1.2, 4.25]
zip_shop = <zip object at 0x0000022852A29948> and type(zip_shop) = <class 'zip'> and id(zip_shop) = 2372208335176
Hello before using list(zip_shop)
Hello before using list(zip_shop)
Hello before using list(zip_shop)
Hello before using list(zip_shop)
list(zip_shop)= [] and type(zip_shop) = <class 'zip'> and id(zip_shop) = 2372208335176
Process finished with exit code 0
groceries=['apple','chips','bread','icecream']和price=[2,3,1.2,4.25]
zip_shop=和类型(zip_shop)=和id(zip_shop)=2372208335176
使用列表前的您好(zip_商店)
使用列表前的您好(zip_商店)
使用列表前的您好(zip_商店)
使用列表前的您好(zip_商店)
列表(拉链店)=[]和类型(拉链店)=和id(拉链店)=2372208335176
进程已完成,退出代码为0
在Python 3中,zip
函数生成一个迭代器,只能使用一次,您必须将其转换为列表
:
zip_shop = list(zip(groceries, price))
在Python 3中,
zip
函数生成一个迭代器,只能使用一次,您必须将其转换为列表
:
zip_shop = list(zip(groceries, price))
您以错误的方式使用zip对象。Zip对象迭代器是惰性求值的,这意味着它们只在被调用时才被求值,并且不会多次求值,这避免了对Zip对象的重复求值。当需要迭代时,必须为迭代对象调用Zip()
groceries = ["apple","chips","bread","icecream"]
price = [2,3,1.2,4.25]
print("groceries = ",groceries,"and price =",price)
#zip_shop = zip(groceries,price)
for g, p in zip(groceries,price):
print("Hello before using list(zip_shop)")
print("List:",list(zip(groceries,price)))
for g, p in zip(groceries,price):
print("Hello after using list(zip_shop)")
您以错误的方式使用zip对象。Zip对象迭代器是惰性求值的,这意味着它们只在被调用时才被求值,并且不会多次求值,这避免了对Zip对象的重复求值。当需要迭代时,必须为迭代对象调用Zip()
groceries = ["apple","chips","bread","icecream"]
price = [2,3,1.2,4.25]
print("groceries = ",groceries,"and price =",price)
#zip_shop = zip(groceries,price)
for g, p in zip(groceries,price):
print("Hello before using list(zip_shop)")
print("List:",list(zip(groceries,price)))
for g, p in zip(groceries,price):
print("Hello after using list(zip_shop)")
如果是这样的话,如果我对第一个循环进行注释,它不应该打印第二个循环的语句吗?(我已经试过了,它没有打印第二个循环的语句)但是你在第二个循环之前做了一个
列表(zip_shop)
。那么,如果我想在问题的场景中打印两个循环的语句,我该怎么做呢?@Lokeshwartilor正如georgexsh已经告诉你的,在python3zip
中生成一个迭代器,因此,第一个显式(for
)或隐式(list(…)
)循环将使用迭代器。如果你想不止一次地使用它,你必须首先从中构建一个列表,然后在该列表上迭代。如果是这样,如果我对第一个循环进行注释,它不应该打印第二个循环的语句吗?(我已经试过了,它没有打印第二个循环的语句)但是你在第二个循环之前做了一个列表(zip_shop)
。那么,如果我想在问题的场景中打印两个循环的语句,我该怎么做呢?@Lokeshwartilor正如georgexsh已经告诉你的,在python3zip
中生成一个迭代器,因此,第一个显式(for
)或隐式(list(…)
)循环将使用迭代器。如果您想不止一次地使用它,您必须首先从中构建一个列表,然后迭代该列表。