Skip to main content
 首页 » 编程设计

Python:如何用有序数字替换对象的每个实例

2025年05月04日35落叶

标题可能有点含糊,所以我会在这里详细说明。

我有一个这样定义的对象列表:

pname { 
'amondo': 'amondo', 
'android13': 'android13', 
'android13s': 'android13s', 
'android14': 'android14', 

总共 351 个对象。

我想做的是用从 1 开始的数字替换左侧引号中的文本。因此最终结果将类似于:

'1': 'amondo', 
'2': 'android13', 
'3': 'android13s', 
'4': 'android14', 

一直到最后一个对象。

我用以下代码创建了一个 python 脚本:

import re 
 
f = open('name.js', 'r') 
 
inp = [] 
outp = [] 
 
 
for i in f: 
    inp.append(i) 
 
for i in inp: 
    x = 1 
    while x < 352: 
        r = re.sub('.*\:', "'" + str(x) + "':", i) 
        x+=1 
 
    outp.append(r) 
 
 
o = open('done.js', 'w') 
 
for i in outp: 
    o.write(i) 
 
f.close() 
o.close() 

但是输出是:

'351': 'amondo', 
'351': 'android13', 
'351': 'android13s', 
'351': 'android14', 

我明白我做错了什么以及为什么输出是这样,但我不确定如何解决它。

可能有一个我不知道的功能可以帮助我。

请您参考如下方法:

如果你仔细观察你的 while 循环,直到 x=352 之前没有什么能阻止它,然后你追加 r,这不是你想要的......一个简单的计算行数的方法是使用枚举:

for x,i in enumerate(f): 
    r = re.sub('.*\:', "'" + str(x) + "':", i) 
    outp.append(r)