Skip to main content
 首页 » 编程设计

python之有没有办法在 for 循环中更改函数中使用的变量

2025年05月04日19zhenyulu

我在学校上计算机科学类(class),我需要为考试找出一些代码,我需要在解码 RLE 后在 for 循环中打印变量名称后更改它。我很难解释,但我希望你能理解。

我试图在网上查找它,但找不到合适的方式来表达我遇到的问题。

import re 
 
def decode(string): 
    return re.sub(r'(\d+)(\D)', lambda m: int(m.group(1)) * m.group(2), string) 
 
ch=int(input()) 
 
for x in range(0, ch): 
    globals()['line%s' % x]=input() 
 
for x in range(0, ch): 
    print(decode(['line%s' % x])) 

我要找的结果是逐行进入RLE后(ch是行数),我做的函数取的是for循环创建的变量名(所以他们的名称是 line0, line1, line2 等...直到 line(ch)) 然后继续解压缩并打印 RLE,但我似乎无法让它工作

编辑:我可能让我的问题不明显,我很抱歉,我想修复最后两行代码,以便 RLE 在一个 for 循环中解压缩和打印,我不知道这是否可能但是我只是想知道(如果)我能以某种方式使 print(decode(['line%s' % x])) 工作,所以就像变量 line 一样通过一个数字在变量中被改变。抱歉,我不擅长解释事情。

请您参考如下方法:

临时创建变量名几乎总是错误的做法。您只需要一个简单的列表值:

lines = [] 
for x in range(ch): 
    lines.append(input()) 
 
# or as a list comprehension, 
# lines = [input() for x in range(ch)] 
 
for x in lines: 
    print(decode(x))