gpt4 book ai didi

Python 值错误 : too many values to unpack (expected 2)

转载 作者:行者123 更新时间:2023-12-04 16:30:42 24 4
gpt4 key购买 nike

输入

 2 4
1 2 3 4
1 0
2 1
2 3

我需要从第三行提取数字对到最后(第三行只有 2 个数字)
这是我的功能
def read_nodes():
n, r = map(int, input().split())
n_list = []

for i in range(2 , n):
n1, n2 = map(int, input().split())
n_list.append([n1, n2])
return n_list
print(read_nodes())

我除了 [[1,0],[2,1],[2,3]]但说 ValueError: too many values to unpack (expected 2)

最佳答案

@e4c5 已经很好地解释了错误发生的原因,所以我将跳过那部分。

如果您使用的是 Python 3 并且只对前两个值感兴趣,这是使用 Extended Iterable Unpacking 的好机会。 .以下是一些简短的演示:

>>> n1, n2, *other = map(int, input().split())
1 2 3 4
>>> n1
1
>>> n2
2
>>> other
[3, 4]
other是捕获剩余值的“通配符”名称。
您可以通过检查 other 的真实性来检查用户是否恰好提供了两个值。 :
>>> n1, n2, *other = map(int, input().split())
1 2
>>> if not other: print('exactly two values')
...
exactly two values

请注意,这种方法仍然会抛出 ValueError如果用户提供的数字少于两个,因为我们需要从列表中解压至少两个 input().split()为了分配名称 n1n2 .

关于Python 值错误 : too many values to unpack (expected 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44241453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com