谁能解释一下这段代码有什么问题?
for game_name,game_size in games_names,games_sizes:
print(f'Game_Name = {game_name} Size = {game_size}')
这是我尝试迭代两个列表并打印它们的值的 Python 代码,但它给了我这个错误:
ValueError:解包的值太多(预期为 2)
如果你想在同一时刻迭代 2 个列表,你应该使用zip()
函数。
例子:
>>> lol = [1,2,3,4,5]
>>> kek = [6,7,8,9,10]
>>> for num, secnum in zip(lol, kek):
... print(num, secnum)
让我解释一下为什么你不能“解开”它。例如,让我们说我们有这样的名单:arr = [1, 2, 3, 4, 5]
。在每次迭代中,您只能获得 1 个对象,对吗?
one = arr[0]
two = arr[2]
...
这就是我们如何从列表中获取值的方法。我们也可以分配这样的值:
one, two, three = arr[0], arr[1], arr[2]
在python中有*
符号,意味着你可以在列表中“打包”值。
colors = ['cyan', 'magenta', 'yellow', 'black']
cyan, magenta, *other = colors
print(cyan)
print(magenta)
print(other)
输出:
cyan
magenta
['yellow', 'black']
总结解压的作用:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句