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

2024-04-26 18:37:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学校上计算机科学课程,我需要为考试找出一些代码,我需要在解码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循环创建的变量名(因此它们的名称是line0line1line2等等。。。直到line(ch)),然后继续解压缩并打印RLE,但我似乎无法让它工作

编辑:我可能已经使我的问题不明显,我道歉,我想修复最后两行代码,以便RLE是解压和打印在一个for循环,我不知道这是否可能,但我只想知道如何(如果)我可以以某种方式使print(decode(['line%s' % x]))工作,所以就像变量line后面跟一个数字一样,在变量中发生了变化。对不起,我不善于解释。你知道吗


Tags: 代码inreforinputstringlinegroup
1条回答
网友
1楼 · 发布于 2024-04-26 18:37:51

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

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))

相关问题 更多 >