我有一个可以正常工作的代码,但是它只从 entrada
中选择 4 个值。我希望能够为每个参数设置这个数量。
def pdd(number, entrada):
for i, j, k, l, m in zip(entrada[:-1], entrada[1:], entrada[2:], entrada[3:], entrada[4:]):
if number in i:
print([j, k, l, m])
list_pad = [[1, 9], [1, 15], [1, 10], [1, 11], [1, 12], [1, 13], [1, 15], [1, 14], [1, 15], [1, 16], [1, 17], [1, 18]]
pdd(15, list_pad)
输出:
[[1, 10], [1, 11], [1, 12], [1, 13]]
[[1, 14], [1, 15], [1, 16], [1, 17]]
基本上它会解析输入,在本例中是一个包含小列表的列表。然后它分析输入,并通过识别具有 number
参数传递的编号的项目(列表),它将打印接下来的 4 个项目(列表)。这段代码已经做到了,但我希望能够通过传递给函数的参数来设置金额(而不是 4)
但是我希望能够设置每个参数的数量,而不是选择 4 条记录。
示例:
pdd(15, list_pad, 6)
并且应该离开:
[[1, 10], [1, 11], [1, 12], [1, 13], [1, 15], [1, 14]]
示例2:
pdd(15, list_pad, 2)
并且应该离开:
[[1, 10], [1, 11]]
[[1, 14], [1, 15]]
[[1, 16], [1, 17]]
如何做到这一点?
最佳答案
您可以使用生成器表达式,在 n
(指定输出记录数的新参数)范围内迭代和切片 entrada
,并将其输出解包为参数到zip
:
def pdd(number, entrada, n):
for i, *j in zip(entrada, *(entrada[i:] for i in range(1, n + 1))):
if number in i:
print(j)
关于python - Loop For 和 Zip(),选择要打印的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55456002/