我在学校上计算机科学类(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))
