小编Car*_*_OL的帖子

创建一个列表理解,将列表中的某些值重复 X 次,然后移至下一项

我有一个非常具体的用例来创建列表理解,但我在弄清楚如何去做时遇到了一些麻烦。我确信一定有一种方法或函数可以帮助我,但我想我不知道。

场景如下:以下代码按预期工作并生成所有预期的变化(总共 8 个)

List_A = ["apples","oranges"]
List_B = ["meat","chicken"]
flexibility = range(2)

list = []
for a in List_A:
    results = [(day, b, a) for day in flexibility for b in List_B]
    list.append(results)
print (list)
Run Code Online (Sandbox Code Playgroud)

结果

[[(0, 'meat', 'apples'), (0, 'chicken', 'apples'), (1, 'meat', 'apples'), (1, 'chicken', 'apples')], 
 [(0, 'meat', 'oranges'), (0, 'chicken', 'oranges'), (1, 'meat', 'oranges'), (1, 'chicken', 'oranges')]]
Run Code Online (Sandbox Code Playgroud)

问题就在这里。假设我的速率限制为每秒 5 次调用,并且上面的列表创建了 8 个元素,因此我会超出速率限制。我认为可以克服这个问题的方法是创建另一个变量来传递给函数,该函数将使用不同的帐户来发出我的 api 请求。理论上,每个帐户只会发出 5 个请求。因此,在上面的示例中,列表的前 5 个元素将使用帐户 0,其余 3 个元素将使用帐户 1。我尝试使用列表理解来实现此目的,但结果不是我所期望的:

no = [0,1,2]
List_A …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

5
推荐指数
1
解决办法
86
查看次数

标签 统计

list-comprehension ×1

python ×1