簡體   English   中英

如何在 for 循環的 output 中指定每次迭代? Python

[英]How can I specify each iteration in a for loop's output? Python

我有一個帶有多個值的 .json 文件,用逗號分隔。 我想通過文件將 go 和 output 每個值依次作為變量。 第一個是 x1,第二個是 x2,依此類推。 關鍵是我可以稍后在等式中使用這些值。 output 看起來像這樣:

x1 = 0.0234
x2 = 0.512
x3 = 0.9782

我很確定在此之后我需要使用 for 循環:

g = open('beat_times_knownsong1.json')
another_song = json.load(g)

編輯:這是一些.json 數據:

0.023219954648526078,
    0.5108390022675737,
    0.9752380952380952,
    1.4628571428571429,
    1.9504761904761905,
    2.414875283446712,
    2.9024943310657596,
    3.3668934240362813,
    3.8545124716553287,
    4.31891156462585,
    4.806530612244898,
    5.270929705215419,
    5.758548752834467,
    6.222947845804988,
    6.710566893424036,
    7.174965986394557,

它們只是價值增加的數字。 如果我這樣做:

g = open('beat_times_knownsong1.json')
another_song = json.load(g)

for beat in another_song:
    print(beat)

然后它只打印值。 我希望它將每個值保存到一個“x”變量中,從 x1 = 0.023219954648526078 增加到 x2、x3 等等。

為什么不使用字典而不是變量:

g = open('beat_times_knownsong1.json')
another_song = json.load(g)
variable_dict={}
i=0
for beat in another_song:
    variable_dict["x"+str(i)]=beat
    i+=1

你可以像這樣得到你想要的值:

變量字典[“x1”]

  1. 使用enumerate獲取您正在迭代的列表中的當前值的索引。
  2. Python 中有多種方法可以將字符串轉換為變量(參見例如此處)。 一種是使用locals方法,該方法返回一個dict ,該 dict 反映了 scope 中定義的所有局部變量(例如函數)並允許操作它們(例如重新分配、添加新變量或刪除現有變量)。

例子:

g = open('beat_times_knownsong1.json')
another_song = json.load(g)

for i, beat in enumerate(another_song):
    locals()[f"x{i}"] = beat

print(x0)
print(x1)
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM