使用模数分块数据的优雅方式?

Elegant way to chunk data using modulo?

假设我有 3 个 ID: ids = ["x1", "y1", "z1"]

我有一个相应的 for-loop,它生成另一组 ID 以关联到每个 ID。我希望 1,000,000 自动生成的 ID 分别关联到 x1、y1 和 z1。假设下面代码片段中的每个注释都负责生成一个 UUID 并插入到一个值为列表的映射中,等等。这些细节并不重要。

示例:

for x in range(0, 3000000):
    if (x < 1000000):
       # associate this auto-generated ID to x1
    if (x >= 1000000 and x < 2000000):
       # associate this auto-generated ID to y1
    if (x >= 2000000 and x < 3000000):
       # associate this auto-generated ID to z1 

我试图想出一种干净的方法来使用简单的模运算来执行此操作,但不太记得在这种情况下我应该做什么。

如果你有一个在相同索引处具有相应 ID 的列表列表(与第一个位置的 x1 相关联的 ID,第二个位置的 y1 ...),你可以这样做:

IDS = [[], [], []]
for x in range(0,3000000):
    IDS[x//1000000].append(x)

您所做的与模运算无关,因为您是将所有这些组合在一起,而不是在 ID 之间轮换。

for x in range(0, 1000000):
    # associate `x` with `x1`
for x in range(1000001, 2000000):
    # associate `x` with `y1`
for x in range(2000001, 3000000):
    # associate x with `z1`