我对python
很陌生,我想知道如何将整数逐步分配给系列中的每个3 values
。最好用一个例子来解释:
结果应包含以下模式:
(1,1),(2,1),(3,1),(4,2),(5,2),(6,2),(7,3).......
答案 0 :(得分:3)
或者,仅使用一个简单的for循环和两个变量:
val1 = 1
val2 = 1
for a in range(10): # this number is arbitrarily large
for b in range(3): # this number is not arbitrary
print( (val1, val2) )
val1 += 1
val2 += 1
答案 1 :(得分:2)
您可以将楼层除法运算符与列表理解一起使用:
n = range(1, 10)
res = [(i, idx//3 + 1) for idx, i in enumerate(n)]
print(res)
[(1, 1), (2, 1), (3, 1),
(4, 2), (5, 2), (6, 2),
(7, 3), (8, 3), (9, 3)]
答案 2 :(得分:0)
如果您希望它是无限的,建议您查看itertools
from itertools import count
def integers_rep(n):
for i in count(1):
for _ in range(n):
yield i
def gen_sequence():
return zip(count(1), integers_rep(3))
count(n)
是一个可迭代的对象,它会无限制地从其第一个参数开始生成序列n, n+1, n+2, ...
(如果未传递任何内容,则默认为0)。
gen_sequence
将创建您的序列,使用zip
来获取N个可迭代元素并生成N个元组的序列(两个序列=>对,三个=>三元组,等等)。通过采用count
和其他顺序,您将可以得到他们的配对。
使用这些工具,您将可以在高层次上定义所有内容(这对数学序列很有用)。