将字符串与范围连接起来

Concatenating a string with a range

x= ("bonus")
i=[str(i) for i in range(80,121)]
for s in i:
    z=x+s

我正在尝试获得

的结果
bonus80
bonus81
bonus82
...
..
bonus120

所以我可以将结果用于以下代码

bonus_80=df["Bonus Payout 80%"].values
bonus_81=df["Bonus Payout 81%"].values
# ...
bonus_119=df["Bonus Payout 119%"].values
bonus_120=df["Bonus Payout 120%"].values

但还是找不到办法,试了很多变种都没完。

尝试为动态 key/value 对使用字典。

result = {}
for i in range (80,121):
    result[f"Bonus_{i}"] = df[f"Bonus Payout {i}%"]
x= ("bonus")
i=[str(i) for i in range(80,121)]
for s in i:
    z=x+s

我会告诉你“不错的尝试”,但你有没有注意到你没有打印任何东西?


我会这样做:

l = [f"Bonus Payout {i}%" for i in range(80, 120)]

然后,如果您想访问 df:

n = [df[key] for key in l]

我相信你想要的是动态创建变量。正如@JarroVGIT 提到的那样,使用字典更好。但是否则你可以访问 globals() 字典来访问变量名:

for i in range(80, 121):
    globals()[f"bonus_{i}"] = df[f"Bonus Payout {i}%"].values

然后你就有了 20 个自变量,你可以像访问其他变量一样访问它们。

bonus_110 = 110
print(bonus_84)