所以我有这个输入可以是用户想要的整数。
我想把它们分成两部分。
number = input()
a, b = (int(i) for i in numbers.split(' '))
Hey = Change(a, b)
更改只是一个对a,b做某事的类。我的问题是,当我运行它并且用户给出两个以上的整数时,我得到一个错误:“ValueError:解压缩的值太多(预期2)”。
有没有办法设置它,所以它解包前两个然后接下来两个,依此类推?
提前致谢
答案 0 :(得分:2)
这样的事情:
numbers = input()
tokens = numbers.split()
for a, b in zip(tokens[::2], tokens[1::2]):
Hey = Change(int(a), int(b))
答案 1 :(得分:2)
Actualy你可以这样做:
gen = (int(i) for i in input().split())
for a in gen:
Hey = Change(a, next(gen))
因为gen是一个生成器表达式,for循环将获取第一个项目,并将其分配给a
,next(gen)
调用将从生成器获取第二个值,因此您将获得两者成对的价值观。这是更好的解决方案,因为您不需要额外的列表副本,就像在下面的答案中所做的那样。
答案 2 :(得分:1)
numbers = '1 2 5 8 6 9 4 5'
num_list = [int(i) for i in numbers.split(' ')]
for i in num_list[::2]:
print(i, num_list[num_list.index(i)+1])
出:
1 2
5 8
6 9
4 5