python - Python:更改for loop中变量旁边的数字

假设我们有,

x1 = lst[0:20000]
 x2 = lst[0:20000]
 x3 = lst[0:20000]
 x4 = lst[0:20000]

 y1 = lst[0:20000]
 y2 = lst[0:20000]
 y3 = lst[0:20000]
 y4 = lst[0:20000]

我想使用一个 for loop 来遍历所有变量 x1,...,x4。

for i in range(20000):
   varX = x1.iloc[i]
   varY = y1.iloc[i]

在这种情况下,我将如何将 x1 到 x2 到 x3 等以及 y1、y2、y3 等的数量更改为?我可能需要使用 while 循环来计数。就像是,

j = 1
while j < 5:
   for i in range(20000):
       varX = x1.iloc[I]
       varY = y1.iloc[i]
   j+=1

但我的问题是如何在循环中每次将 x x1.iloc[i] 旁边的 1 更改为 x2.iloc[i] ?确切地说,我如何将 j 放入 x(j).iloc[i] ?

回答1

最简单的方法:

for x, y in zip((x1, x2, x3, x4), (y1, y2, y3, y4)):
    for i in range(20000):
        varX = x.iloc[i]
        varY = y.iloc[i]

最好在创建变量时将它们放在列表中,而不是在要一起使用时将它们临时收集在一起。

还有一些方法可以实现你的想法,例如使用 globals 来获取全局字典,或者使用 eval 来解析字符串。但这不推荐。您只需要知道,但永远不要在实践中使用它们(假装您不知道它们存在):

for i in range(1, 5):
    x = globals()[f'x{i}']   # or eval(f'x{i}')
    y = globals()[f'y{i}']
    for j in range(20000):
        varX = x.iloc[j]
        varY = y.iloc[j]

相似文章

python - python 猜数字游戏,猜多

我正在学习编程1并且正在做1-100的猜数游戏,我需要一个命令,如果我猜超过100,程序会看到它并告诉我,我不知道我应该如何得到这个答案。我已经猜到我认为该命令会是什么样子以及它最远的地方,但如果我完...

最新文章