Python范围计数器重置为999,并在每个字符串的末尾附加千位数

问题描述 投票:0回答:1

我做了几次搜索,但没有找到相关的帖子。

I.发生了什么:

  • 我有一个~9000字符串的列表[string1,string2,... string 9001]
  • 我使用for循环在索引号的每一行写入每个字符串: #z is a list with ~9000 items y = open('4.3 data.txt', 'w', encoding='utf-8') for i in range(0, len(z)): y.write(str(i) + '^') y.write(str(z[i])) y.write('\n') y.close()
  • 我得到的是如下: 0 blahblahblah 1 blahblahblah ... 998 blahblahblah 999 blahblahblah 000 blahblahblah1 001 blahblahblah1 ... 999 blahblahblah1 000 blahblahblah2 001 blahblahblah2
  • 因此,基本上似乎(我通常会读到)使用“范围”来计数达到999,然后它(1)重置为000并且(2)在字符串的末尾附加千位数。

II。我想要的是:

  • 我想知道是否有任何方法可以在1000,2000等时禁用重置,这样我就可以使用范围并且仍然可以使计数器达到1000,2000,3000等。
  • 如果这是不可能的/不可取的,我想知道迭代列表中的项目的替代方法,以便(1)索引不会重置(这不是很重要,虽然它很好)和(2)字符串未被修改为在其末尾附加了千位数(我希望这很多)

谢谢!

python range counter
1个回答
1
投票

更加“Pythonic”处理这个问题的方法是使用enumeration

我还建议使用open()作为上下文管理器来实现文件I / O.

例如:

with open('4.3 data.txt', 'w', encoding='utf-8') as y_file:
    for i, item in enumerate(z):
        print(str(i) + ' ' + str(item), file=y_file)
© www.soinside.com 2019 - 2024. All rights reserved.