[英]How can I modify a variable in a list comprehension?
有没有办法在以下代码中每次循环运行一次重新分配alt_index
?
alt_index = random.randint(0, len(validinfo) - 1)
到那个列表:
futures = [
session.post(f"https://api.mojang.com/user/profile/{validinfo[alt_index].rpartition(':')[-1].rpartition(':')[-1]}/name", headers={'Authorization': "Bearer "+validinfo[alt_index].rpartition(':')[0].rpartition(':')[-1]}, json={"name": TARGET,"password": validinfo[alt_index].rpartition(':')[0].rpartition(':')[0].rpartition(':')[-1]})
for i in range(TRIES)
]
每个请求都应该使用不同的alt_index
,但在同一个表达式中它必须是相同的。 我使用它来使每个请求都使用来自 txt 文件的不同数据。 当我添加alt_index = random.randint(0, len(validinfo) - 1)
列出它会引发错误,我不知道如何解决这个问题。
你有一个列表理解,你想做“额外的工作”。 虽然有多种技巧可以将所有内容打包在一行中,但您可以简单地退回到正常的 for 循环。 任何列表推导[f(x) for x in y if g(x)]
都可以扩展为 for 循环:
return_list = []
for x in y:
if g(x):
return_list.append(f(x))
您可以在其中使用 then 有更复杂的表达式,在您的情况下,相应的 for 循环将如下所示:
futures = []
for i n range(TRIES):
futures.append(session.post(f"https://api.mojang.com/user/profile/{validinfo[alt_index].rpartition(':')[-1].rpartition(':')[-1]}/name", headers={'Authorization': "Bearer "+validinfo[alt_index].rpartition(':')[0].rpartition(':')[-1]}, json={"name": TARGET,"password": validinfo[alt_index].rpartition(':')[0].rpartition(':')[0].rpartition(':')[-1]}))
您现在可以在该 for 循环中重新分配alt_index
。 拥有一些中间值可能也是一个好主意,以使那条长线更容易阅读,例如您通常在那里有validinfo[alt_index].rpartition(':')[0]
,这将是一个很好的候选者。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.