在Google App Engine查询中使用IN操作限制为每个查询列表中有30个项目,因此我必须找到一种方法将列表分成多个列表,每个数组中最多包含30个项目,并查询每个子项数组。

我已经提出了一个小解决方案来做到这一点,但这非常不雅致,我不确定这是否是实现此目的的最佳方法。我是Python的新手,所以我想知道如何正确或更优雅地执行此操作?

我正在查询User.query(User.email IN emails)

max_length = 30
iter_count = len(emails) / max_length
for i in range(iter_count):
    min = i  * max_length
    max = (i + 1) * max_length
    if min > len(emails):
       break
    if max > len(emails):
       max = len(emails)

    current_array = emails[min:max]
    # query this array

最佳答案

max_length = 30
for i in xrange(0, len(emails), max_length):
    current_array = emails[i:i+max_length]
    # query this array

关于python - 将Python列表分成较小的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12966568/

10-12 23:04