如何在for循环中为每次迭代输出数字?

时间:2018-01-10 15:49:53

标签: python-3.x

for replay_data in raw_replay_data['data']['video_info']:
    target.write("Coordinates: " + replay_data['lat'] + (',') + replay_data['lnt'] + "\n")

这个for循环给了我fx。输出:

Coordinates: 0,0
Coordinates: 0,0
Coordinates: 0,0
Coordinates: 0,0

我想在每个"坐标"之后输入一个数字。为每个可用的新坐标增加的字符串。 如何输出:

Coordinates 1: 0,0
Coordinates 2: 0,0
Coordinates 3: 0,0
Coordinates 4: 0,0

2 个答案:

答案 0 :(得分:4)

查看enumerate() function,它是for循环中最好的朋友。您还可以使用一些str.format() function来提高输出的可读性:

for index, replay_data in enumerate(raw_replay_data['data']['video_info']):
    target.write("Coordinates {0}: {1}, {2}\n".format(index+1, replay_data['lat'], replay_data['lnt'])

答案 1 :(得分:1)

您创建一个计数器并计算:

numbr = 1   # counter, starting at 1
for replay_data in raw_replay_data['data']['video_info']:
    target.write("Coordinates " + str(numbr) + ": " + replay_data['lat'] + (',') + replay_data['lnt'] + "\n")
    numbr += 1 # increment counter

您可能希望查看字符串格式方法:string.format

您可以执行以下操作:

replay_data = {}
replay_data['lat'] = 1
replay_data['lnt'] = 2

numbr = 22

print("Coordinates {n}: {lat},{lng}\n"
      .format(n=numbr, lat = replay_data['lat'], lng = replay_data['lnt']))

输出:

Coordinates 22: 1,2
相关问题