Home > Mobile >  Concatenating a string with a range
Concatenating a string with a range

Time:03-30

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

I am trying to get an outcome of

bonus80
bonus81
bonus82
...
..
bonus120

So I could use the outcome for below code

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

But still could not find a way to do it, I tried many variations to no end.

CodePudding user response:

Try using a dictionary for dynamic key/value pairs.

result = {}
for i in range (80,121):
    result[f"Bonus_{i}"] = df[f"Bonus Payout {i}%"]

CodePudding user response:

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

I would tell you "Nice try", but have you noticed that you're not printing anything?


I would do this:

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

and then, if you want to access that df:

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

CodePudding user response:

I believe what you want is to dynamically create variables. As @JarroVGIT mentionned, using a dictionary is better. But otherwise you can access the globals() dictionary to access variable names :

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

Then you have your 20 independant variables and you can access them like any other.

bonus_110 = 110
print(bonus_84)
  • Related