Python让我的程序在一个循环中输出一个变量



我不知道如何解释这一点,但我的任务是将字典导出为文本文件,并将其格式化正确。字典看起来像这样:

obstacles = {4: [(5, 6), (9, 11)],
5: [(9, 11), (19, 20), (30, 34)],
13: [(5, 8), (9, 11), (17, 19), (22, 25), (90, 100)]}

,它应该输出为(正确的方式):

004:   5-6      9-11
005:   9-11    19-20    30-34
013:   5-8      9-11    17-19    22-25    90-100
现在我创建了一个代码,它输出到一个文本文件,像这样:
004:    5-6
004:    9-11
005:    9-11
005:    19-20
005:    30-34
013:    5-8
013:    9-11
013:    17-19
013:    22-25
013:    90-100

这就是我的代码看起来像,我的意思是它输出像这样,因为它是在一个for循环,但如果有人能帮助我理解和帮助我修复我的代码,这将是非常感激。我的代码是这样的:

with open('filename.txt', 'w') as f:
for v, k in obstacles.items():
tridec = f'{v:03}'
for broj1, broj2 in k:
xx = str(broj1) + "-" + str(broj2)
f.write("%s:t" % tridec + "%sn" % xx)

我尝试像这样使用。join函数:


with open('filename.txt', 'w') as f:
for v, k in obstacles.items():
tridec = f'{v:03}'
r = ("-".join(str(z) for z, m in k))
r1 = ("-".join(str(m) for z, m in k))
mr = r + "t" + r1
f.write("%s:t" % tridec + "%st" % r + "%sn" % r1)

但是这个输出是这样的:

004: 5-9 6-11
005: 9-19-30 11-20-34
013: 9-17-22-90 11-10-25-100

我知道它这样输出的原因,因为它先组合了z,再加上"-"然后是变量m。但它应该像这个例子004:z - m z - m。代码看起来大概是这样的,当我试图重写它的时候,我从脑子里写了这个,因为我删除了将数字输入txt文件的方法。

循环遍历每个键的值(该值是tuples中的list),并为每个元素调用f.write

with open('filename.txt', 'w') as f:
for v, k in obstacles.items():
tridec = f'{v:03}:'
f.write(tridec)
for a,b in k:
f.write(f't{a}-{b}')
f.write('n')

相关内容

  • 没有找到相关文章

最新更新